Exemplo n.º 1
0
 private void UpdatesCheckComplete(object sender, RunWorkerCompletedEventArgs e)
 {
     try
     {
         if (e.Error != null)
         {
             m_main.SetStatusText(string.Format("{0} {1}", guiStrings.MsgUpdateFailed, e.Error.Message));
             return;
         }
         else if (e.Cancelled)
         {
             return;
         }
         var result = e.Result as GarUpdateInfo;
         if (null == result)
         {
             m_main.SetStatusText(guiStrings.MsgNoUpdates);
             return;
         }
         ShowUpdateResult(result);
     }
     finally
     {
         OnCanExecuteChanged();
     }
 }
Exemplo n.º 2
0
 void OnConvertComplete(object sender, RunWorkerCompletedEventArgs e)
 {
     m_main.ResumeWatchDirectoryChanges();
     m_progress_dialog.Dispose();
     if (null != m_pending_error)
     {
         if (m_pending_error is OperationCanceledException)
         {
             m_main.SetStatusText(m_pending_error.Message);
         }
         else
         {
             m_main.PopupError(m_pending_error.Message, guiStrings.TextMediaConvertError);
         }
     }
     m_main.Activate();
     m_main.RefreshView();
 }
Exemplo n.º 3
0
        public void ExtractAll(string destination)
        {
            var file_list = m_fs.GetFilesRecursive();

            if (!file_list.Any())
            {
                m_main.SetStatusText(string.Format("{1}: {0}", guiStrings.MsgEmptyArchive, m_arc_name));
                return;
            }
            var extractDialog = new ExtractArchiveDialog(m_arc_name, destination);

            extractDialog.Owner = m_main;
            var result = extractDialog.ShowDialog();

            if (!result.Value)
            {
                return;
            }

            destination = extractDialog.Destination;
            if (!string.IsNullOrEmpty(destination))
            {
                destination = Path.GetFullPath(destination);
                PrepareDestination(destination);
            }
            else
            {
                destination = ".";
            }
            m_skip_images = !extractDialog.ExtractImages.IsChecked.Value;
            m_skip_script = !extractDialog.ExtractText.IsChecked.Value;
            m_skip_audio  = !extractDialog.ExtractAudio.IsChecked.Value;
            if (!m_skip_images)
            {
                m_image_format = extractDialog.GetImageFormat(extractDialog.ImageConversionFormat);
            }

            m_main.SetStatusText(string.Format(guiStrings.MsgExtractingTo, m_arc_name, destination));
            ExtractFilesFromArchive(string.Format(guiStrings.MsgExtractingArchive, m_arc_name), file_list);
        }
Exemplo n.º 4
0
        public bool Run()
        {
            Directory.SetCurrentDirectory(m_main.CurrentPath);
            var items = m_main.CurrentDirectory.SelectedItems.Cast <EntryViewModel> ();

            if (string.IsNullOrEmpty(m_arc_name))
            {
                m_arc_name = Path.GetFileName(m_main.CurrentPath);
                if (!items.Skip(1).Any())  // items.Count() == 1
                {
                    var item = items.First();
                    if (item.IsDirectory)
                    {
                        m_arc_name = Path.GetFileNameWithoutExtension(item.Name);
                    }
                }
            }

            var dialog = new CreateArchiveDialog(m_arc_name);

            dialog.Owner = m_main;
            if (!dialog.ShowDialog().Value)
            {
                return(false);
            }
            if (string.IsNullOrEmpty(dialog.ArchiveName.Text))
            {
                m_main.SetStatusText("Archive name is empty");
                return(false);
            }
            m_format = dialog.ArchiveFormat.SelectedItem as ArchiveFormat;
            if (null == m_format)
            {
                m_main.SetStatusText("Format is not selected");
                return(false);
            }
            m_options = dialog.ArchiveOptions;

            if (m_format.IsHierarchic)
            {
                m_file_list = BuildFileList(items, AddFilesRecursive);
            }
            else
            {
                m_file_list = BuildFileList(items, AddFilesFromDir);
            }

            m_arc_name = Path.GetFullPath(dialog.ArchiveName.Text);

            m_progress_dialog = new ProgressDialog()
            {
                WindowTitle = guiStrings.TextTitle,
                Text        = string.Format(guiStrings.MsgCreatingArchive, Path.GetFileName(m_arc_name)),
                Description = "",
                MinimizeBox = true,
            };
            m_progress_dialog.DoWork             += CreateWorker;
            m_progress_dialog.RunWorkerCompleted += OnCreateComplete;
            m_progress_dialog.ShowDialog(m_main);
            return(true);
        }