コード例 #1
0
ファイル: MainForm.cs プロジェクト: Michaelll123/Code2Xml
        private void azuki_DragDrop(object sender, DragEventArgs e)
        {
            var paths     = (string[])e.Data.GetData(DataFormats.FileDrop, false);
            var count     = lvModifiableFile.Items.Count;
            var filePaths = paths.SelectMany(
                path =>
                Directory.Exists(path)
                                    ? Directory.EnumerateFiles(
                    path, "*", SearchOption.AllDirectories)
                .Where(
                    filePath =>
                    _activeProcessor.SupportedExtensions
                    .Contains(
                        Path.GetExtension(
                            filePath)))
                                    : Enumerable.Repeat(path, 1));

            foreach (var filePath in filePaths)
            {
                var file     = new FileInfo(filePath);
                var codeFile = new CodeFile(_activeProcessor, file);
                var item     = new FileListViewItem(codeFile);
                lvModifiableFile.Items.Add(item);
            }
            lvModifiableFile.Items[count].Selected = true;
        }
コード例 #2
0
 public UpdateFilesCommand(JsonObject response)
 {
     Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(Program.Settings.Locale, true);
     Program.DaemonDescriptor.ResetFailCount();
     MainWindow form = Program.Form;
     JsonObject arguments = (JsonObject)response[ProtocolConstants.KEY_ARGUMENTS];
     JsonArray torrents = (JsonArray)arguments[ProtocolConstants.KEY_TORRENTS];
     if (torrents.Count != 1)
     {
         return;
     }
     JsonObject torrent = (JsonObject)torrents[0];
     JsonArray files = (JsonArray)torrent[ProtocolConstants.FIELD_FILES];
     if (files == null)
     {
         return;
     }
     int id = Toolbox.ToInt(torrent[ProtocolConstants.FIELD_ID]);
     Torrent t = (Torrent)form.Invoke(new GetTorrentDelegate(delegate()
     {
         lock (Program.TorrentIndex)
         {
             foreach (KeyValuePair<string, Torrent> st in Program.TorrentIndex)
             {
                 if (st.Value.Id == id)
                     return st.Value;
             }
         }
         return null;
     }));
     if (t == null)
     {
         return;
     }
     JsonArray priorities = (JsonArray)torrent[ProtocolConstants.FIELD_PRIORITIES];
     JsonArray wanted = (JsonArray)torrent[ProtocolConstants.FIELD_WANTED];
     bool havepriority = (priorities != null && wanted != null);
     ImageList imgList = Program.Form.fileIconImageList;
     for (int i = 0; i < files.Length; i++)
     {
         JsonObject file = (JsonObject)files[i];
         string name = Toolbox.TrimPath((string)file[ProtocolConstants.FIELD_NAME]);
         FileListViewItem item = t.Files.Find(name);
         if (item == null)
         {
             item = new FileListViewItem(file, imgList, i, wanted, priorities);
             t.Files.Add(item);
         }
         else
         {
             Program.Form.Invoke(new MethodInvoker(delegate()
             {
                 item.Update(file, wanted, priorities);
             }));
         }
     }
 }
コード例 #3
0
        private void InteractiveResolveRB_CheckedChanged(object sender, EventArgs e)
        {
            FileListViewItem selection = null;

            if ((FileList.SelectedItems != null) && (FileList.SelectedItems.Count > 0))
            {
                selection = (FileListViewItem)FileList.SelectedItems[0];
                if (selection.FirstItem != null)
                {
                    selection = selection.FirstItem;
                }
            }
            else
            {
                return;
            }
            if (selection.ResolveType == P4.ResolveType.Content)
            {
                //CurrentView = ViewType.Interactive;

                resolveFileAutoControl1.Visible        = false;
                resolveFileInteractiveControl1.Visible = true;
                resolveFileActionControl1.Visible      = false;
            }
            else
            {
                //CurrentView = ViewType.Action;

                resolveFileAutoControl1.Visible        = false;
                resolveFileInteractiveControl1.Visible = false;
                resolveFileActionControl1.Visible      = true;
            }

            //FileListViewItem sel = (FileListViewItem)FileList.Items[0];
            //if ((FileList.SelectedItems!= null) && (FileList.SelectedItems.Count > 0))
            //{
            //    sel = (FileListViewItem) FileList.SelectedItems[0];
            //}
            FileList.MultiSelect = false;
            FileList.SelectedItems.Clear();
            //if (sel != null)
            //{
            //    sel.Selected = true;
            //}
            //bool bFirst = true;
            foreach (FileListViewItem item in FileList.Items)
            {
                item.Selected = false;                 //bFirst;
                //bFirst = false;
            }
            selection.Selected = true;
        }
コード例 #4
0
 private void OnFileDeteledFinishEventHandler(RemoteFileAdapterHandler adapterHandler, string[] deletedFiles)
 {
     for (int i = 0; i < fileList.Items.Count; i++)
     {
         FileListViewItem item = fileList.Items[i] as FileListViewItem;
         foreach (var file in deletedFiles)
         {
             if (item.FileName == Path.GetFileName(file))
             {
                 item.Remove();
                 i--;
             }
         }
     }
 }
コード例 #5
0
 private void OnFileNameRenameFinishEventHandler(RemoteFileAdapterHandler adapterHandler, string srcNamec, string targetName, bool isSuccess)
 {
     if (isSuccess)
     {
         for (int i = 0; i < fileList.Items.Count; i++)
         {
             FileListViewItem item = fileList.Items[i] as FileListViewItem;
             if (item.FileName == Path.GetFileName(srcNamec))
             {
                 item.Text     = Path.GetFileName(targetName);
                 item.FileName = Path.GetFileName(targetName);
                 break;
             }
         }
     }
     else
     {
         MessageBoxHelper.ShowBoxError("文件重命名失败!");
     }
 }
コード例 #6
0
ファイル: FileSystemEditor.cs プロジェクト: vaginessa/cameyo
        public void OnFolderTreeSelect(object sender, TreeViewEventArgs e)
        {
            FolderTreeNode folderNode = (FolderTreeNode)e.Node;

            fsFolderInfoFullName.Text = "";
            fsFolderInfoIsolationCombo.SelectedIndex = -1;
            if (folderNode == null)
            {
                return;
            }
            fsFolderInfoIsolationCombo.Enabled = true;     //(folderNode != fsFolderTree.Nodes[0]);
            VirtFsNode virtFsNode = folderNode.virtFsNode; // Avoids CS1690

            // Fill info panel
            String fullName = treeHelper.GetFullNodeName(folderNode);

            fsFolderInfoFullName.Text = "[" + Win32Function.StrFormatByteSize64(virtFsNode.EndOfFile) + "] " + fullName;
            fsFolderInfoIsolationCombo.SelectedIndex = treeHelper.SandboxFlagsToComboIndex(
                virtPackage.GetFileSandbox(fullName, false));

            // Fill fsFilesList
            fsFilesList.Items.Clear();
            if (folderNode.childFiles != null)
            {
                for (int i = folderNode.childFiles.Count - 1; i >= 0; i--)
                {
                    FileData         childFile = folderNode.childFiles[i];
                    FileListViewItem newItem   = new FileListViewItem();
                    newItem.Text = Path.GetFileName(childFile.virtFsNode.FileName);
                    newItem.SubItems.Add(Win32Function.StrFormatByteSize64(childFile.virtFsNode.EndOfFile));

                    newItem.flags = (VIRT_FILE_FLAGS)childFile.virtFsNode.FileFlags;

                    if ((newItem.flags & VirtPackageAPI.VIRT_FILE_FLAGS.DEPLOY_UPON_PRELOAD) != 0)
                    {
                        newItem.ImageIndex = 7;
                    }
                    else
                    {
                        newItem.ImageIndex = 6;
                    }
                    //ListViewItem.ListViewSubItem x = new ListViewItem.ListViewSubItem();
                    //x.Text = ((VIRT_FILE_FLAGS)childFile.virtFsNode.FileFlags).ToString();
                    //newItem.SubItems.Add(x);
                    newItem.SubItems.Add(Path.GetExtension(newItem.Text));

                    newItem.fileSize = childFile.virtFsNode.EndOfFile;
                    if (childFile.addedFrom != "")
                    {
                        if (folderNode.deleted)
                        {
                            folderNode.childFiles.Remove(childFile);       // Added file in a Removed folder. Forbidden!!
                            continue;
                        }
                        else
                        {
                            newItem.ForeColor = Color.Green;               // Newly-added
                        }
                    }
                    else if (folderNode.ImageIndex == 5)                   // deleted
                    {
                        newItem.ForeColor = Color.Red;
                    }
                    else if (childFile.deleted)
                    {
                        newItem.ForeColor = Color.Red;
                    }
                    fsFilesList.Items.Add(newItem);
                }
            }
        }
コード例 #7
0
		private void azuki_DragDrop(object sender, DragEventArgs e) {
			var paths = (string[])e.Data.GetData(DataFormats.FileDrop, false);
			var count = lvModifiableFile.Items.Count;
			var filePaths = paths.SelectMany(path =>
					Directory.Exists(path)
							? Directory.EnumerateFiles(path, "*", SearchOption.AllDirectories)
									.Where(filePath => _activeCodeToXml.TargetExtensions.Contains(Path.GetExtension(filePath)))
							: Enumerable.Repeat(path, 1));
			foreach (var filePath in filePaths) {
				var file = new FileInfo(filePath);
				var codeFile = new CodeFile(_activeCodeToXml, file);
				var item = new FileListViewItem(codeFile);
				lvModifiableFile.Items.Add(item);
			}
			lvModifiableFile.Items[count].Selected = true;
		}
コード例 #8
0
        public UpdateFilesCommand(JsonObject response)
        {
            Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(Program.Settings.Locale, true);
            Program.DaemonDescriptor.ResetFailCount();
            MainWindow form      = Program.Form;
            JsonObject arguments = (JsonObject)response[ProtocolConstants.KEY_ARGUMENTS];
            JsonArray  torrents  = (JsonArray)arguments[ProtocolConstants.KEY_TORRENTS];

            if (torrents.Count != 1)
            {
                return;
            }

            JsonObject torrent = (JsonObject)torrents[0];
            JsonArray  files   = (JsonArray)torrent[ProtocolConstants.FIELD_FILES];

            if (files == null)
            {
                return;
            }

            int id = Toolbox.ToInt(torrent[ProtocolConstants.FIELD_ID]);
            var t  = (Torrent)form.Invoke(new GetTorrentDelegate(delegate
            {
                lock (Program.TorrentIndex)
                {
                    foreach (KeyValuePair <string, Torrent> st in Program.TorrentIndex)
                    {
                        if (st.Value.Id == id)
                        {
                            return(st.Value);
                        }
                    }
                }
                return(null);
            }));

            if (t == null)
            {
                return;
            }
            JsonArray priorities   = (JsonArray)torrent[ProtocolConstants.FIELD_PRIORITIES];
            JsonArray wanted       = (JsonArray)torrent[ProtocolConstants.FIELD_WANTED];
            bool      havepriority = priorities != null && wanted != null;
            ImageList imgList      = Program.Form.fileIconImageList;

            for (int i = 0; i < files.Length; i++)
            {
                JsonObject       file = (JsonObject)files[i];
                string           name = Toolbox.TrimPath((string)file[ProtocolConstants.FIELD_NAME]);
                FileListViewItem item = t.Files.Find(name);
                if (item == null)
                {
                    item = new FileListViewItem(file, imgList, i, wanted, priorities);
                    t.Files.Add(item);
                }
                else
                {
                    Program.Form.Invoke(new MethodInvoker(delegate
                    {
                        item.Update(file, wanted, priorities);
                    }));
                }
            }
        }
コード例 #9
0
        private void FileList_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (SelectionCountLblTxt != null)
            {
                SelectionCountLbl.Text = string.Format(SelectionCountLblTxt,
                                                       (FileList.SelectedItems != null) ? FileList.SelectedItems.Count : 0,
                                                       (FileList.Items != null) ? FileList.Items.Count : 0);
            }

            //foreach (FileListViewItem sel in FileList.SelectedItems)
            //{
            //    if ((sel.FirstItem != null) && (sel.FirstItem.Selected == false))
            //    {
            //        sel.Selected = false;
            //        return;
            //    }
            //}
            FileListViewItem selection = null;

            if ((FileList.SelectedItems != null) && (FileList.SelectedItems.Count > 0))
            {
                selection = (FileListViewItem)FileList.SelectedItems[0];
                //if ((FileList.MultiSelect == false) && (selection.FirstItem != null))
                //{
                //    selection.Selected = false;
                //    return;
                //}
                resolveFileInteractiveControl1.SelectedItem = selection;
                resolveFileActionControl1.SelectedItem      = selection;
            }
            else
            {
                resolveFileInteractiveControl1.SelectedItem = null;
                resolveFileActionControl1.SelectedItem      = null;
            }
            List <FileListViewItem> SelectedItems = null;

            if ((FileList.SelectedItems != null) && (FileList.SelectedItems.Count > 0))
            {
                SelectedItems = new List <FileListViewItem>();
                foreach (ListViewItem item in FileList.SelectedItems)
                {
                    SelectedItems.Add(item as FileListViewItem);
                }
            }
            resolveFileAutoControl1.SelectedItems = SelectedItems;
            if ((InteractiveResolveRB.Checked) && (selection != null))
            {
                if (selection.ResolveType == P4.ResolveType.Content)
                {
                    //CurrentView = ViewType.Interactive;

                    resolveFileAutoControl1.Visible        = false;
                    resolveFileInteractiveControl1.Visible = true;
                    resolveFileActionControl1.Visible      = false;
                }
                else
                {
                    //CurrentView = ViewType.Action;

                    resolveFileAutoControl1.Visible        = false;
                    resolveFileInteractiveControl1.Visible = false;
                    resolveFileActionControl1.Visible      = true;
                }
            }
        }
コード例 #10
0
        private void InitFileListView()
                #region single pass initialization of the list
        {
            this.FileList.Items.Clear();
//			itemMap = null;

            if (_files == null)
            {
                return;
            }
//			itemMap = new Dictionary<string, FileListViewItem>();
            resolveCallback = new P4.Client.ResolveFileDelegate(ResolveCallBackHandler);

            P4.Options options = new P4.ResolveCmdOptions(
                P4.ResolveFilesCmdFlags.ForceTextualMerge | P4.ResolveFilesCmdFlags.DisplayBaseFile, -1);

            int itemCnt = 0;

            IList <P4.P4Exception> errors = null;

            IList <string> filesNotListed = new List <string>();

            foreach (string file in _files)
            {
                IList <P4.FileResolveRecord> records = null;
                try
                {
                    records = _scm.Connection.Repository.Connection.Client.ResolveFiles(
                        resolveCallback, options, P4.FileSpec.LocalSpec(file));
                }
                catch (P4.P4Exception ex)
                {
                    if (errors == null)
                    {
                        errors = new List <P4.P4Exception>();
                    }
                    errors.Add(ex);
                }
                P4.P4CommandResult results = _scm.Connection.Repository.Connection.LastResults;

                int subItemIdx = 0;

                FileListViewItem firstItem = null;

                if ((records != null) && (records.Count > 0))
                {
                    foreach (P4.FileResolveRecord record in records)
                    {
                        string path = null;
                        if (record.LocalFilePath != null)
                        {
                            path = record.LocalFilePath.Path;
                        }
                        else if ((record.FromFileSpec != null) && (record.FromFileSpec.LocalPath != null))
                        {
                            path = record.FromFileSpec.LocalPath.Path;
                        }
                        else
                        {
                            continue;
                        }

                        CurrentItem = new FileListViewItem(path, subItemIdx);

                        if (subItemIdx == 0)
                        {
                            firstItem = CurrentItem;
                        }
                        else
                        {
                            CurrentItem.FirstItem = firstItem;
                        }
                        subItemIdx++;

                        // string key = string.Format("<{0}>{1}", record.ResolveType, path.ToLower());
                        //				itemMap.Add(key, CurrentItem);

                        this.FileList.Items.Add(CurrentItem);

                        CurrentItem.ResolveRecord = record;
                        CurrentItem.Source        = record.FromFileSpec;
                        if (record.ResolveType != P4.ResolveType.None)
                        {
                            CurrentItem.ResolveType = record.ResolveType;
                        }
                        else if ((record.Analysis != null) && (record.Analysis.ResolveType != P4.ResolveType.None))
                        {
                            CurrentItem.ResolveType = record.Analysis.ResolveType;
                        }
                        CurrentItem.ResolveAnalysis = record.Analysis;


                        CurrentItem = null;
                    }
                }
                else
                {
                    filesNotListed.Add(file);
                }
            }
            if (errors != null)
            {
                P4ErrorDlg.Show(errors, false);
            }
            // clean out files that do not need to be resolved
            foreach (string file in filesNotListed)
            {
                _files.Remove(file);
            }

            if (RefreshUICallback != null)
            {
                RefreshUICallback();
            }
            if ((_files == null) || (_files.Count <= 0))
            {
                // no files to resolve
                if (bFirstInit)
                {
                    MessageBox.Show(Resources.ResolveFileDlg_NoFileToResolveWarning, Resources.P4VS,
                                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    this.DialogResult = DialogResult.OK;
                    Close();
                    return;
                }
            }
            bFirstInit = false;

            SelectionCountLbl.Text = string.Format(SelectionCountLblTxt, 0, itemCnt);

            resolveCallback = null;

            AutoResolveRB_CheckedChanged(null, null);
        }