Exemple #1
0
        public SyncState GetImplicitStateOfPath(string path)
        {
            int count = 0;

            foreach (string p in SubPaths(path))
            {
                count++;
                if (ExplicitPaths.ContainsKey(p))
                {
                    var syncInfo = ExplicitPaths[p];

                    if (syncInfo.State == SyncState.FromParent)
                    {
                        continue;
                    }

                    if (specialFolderSyncStates.Contains(syncInfo.State))
                    {
                        if (count == 1 && syncInfo.State == SyncState.IncludeOnlyDirectChildFolders && SyncInfo.IsFolder(path)) // direct parent
                        {
                            return(SyncState.IncludeOnlyFolders);
                        }
                        if (count == 1 && SyncInfo.IsFolder(path)) // explicit path
                        {
                            return(syncInfo.State);
                        }
                        if (syncInfo.State == SyncState.IncludeOnlyFolders && SyncInfo.IsFolder(path))
                        {
                            return(SyncState.IncludeOnlyFolders);
                        }
                        if (count == 2 && syncInfo.State == SyncState.IncludeOnlyDirectChildFolders && SyncInfo.IsFolder(path)) // direct parent
                        {
                            return(SyncState.IncludeSingleFolder);
                        }
                        if (count == 2 && syncInfo.State == SyncState.IncludeOnlyFiles && !SyncInfo.IsFolder(path)) // direct parent
                        {
                            return(SyncState.Include);
                        }
                        return(SyncState.Exclude);
                    }

                    return(syncInfo.State);
                }
            }
            return(SyncState.Exclude);
        }
Exemple #2
0
 public ImageIndex GetIconIndexForPath(string path)
 {
     if (ExplicitPaths.ContainsKey(path))
     {
         // Ok, it's explicitly set
         SyncInfo info = ExplicitPaths[path];
         if (specialFolderSyncStates.Contains(info.State))
         {
             return(ImageIndex.FolderExplicitlyIncludeSpecial);
         }
         if (info.State == SyncState.Include)
         {
             if (SyncInfo.IsFolder(path))
             {
                 return(ImageIndex.FolderExplicitlyInclude);
             }
             else
             {
                 return(ImageIndex.FileExplicitlyInclude);
             }
         }
         else
         if (SyncInfo.IsFolder(path))
         {
             return(ImageIndex.FolderExplicitlyExclude);
         }
         else
         {
             return(ImageIndex.FileExplicitlyExclude);
         }
     }
     else
     if (PathIsIncluded(path))
     {
         return(ImageIndex.FolderImplicitlyInclude);
     }
     else
     {
         return(ImageIndex.FolderImplicitlyExclude);
     }
 }
Exemple #3
0
 public bool IsFolder(string path)
 {
     return(SyncInfo.IsFolder(path));
 }