void manager_OnChange(IVCManager sender) { (PluginBase.MainForm as Form).BeginInvoke((MethodInvoker) delegate { refreshTimer.Stop(); refreshTimer.Start(); }); }
void manager_OnChange(IVCManager sender) { (PluginBase.MainForm as Form).BeginInvoke((MethodInvoker)delegate { refreshTimer.Stop(); refreshTimer.Start(); }); }
static void AskWithTwoFiles(IVCManager manager, string verb, string from, string to, bool commitBoth) { var fromFileRelative = GetRelativeFile(from); var toFileRelative = GetRelativeFile(to); var message = AskForCommit($"{verb} {fromFileRelative} to {toFileRelative}"); if (message != null) { manager.Commit(commitBoth ? new[] { from, to } : new [] { to }, message); } }
private void CreateWatcher(string path, IVCManager manager) { var watcher = new FileSystemWatcher(path); watcher.IncludeSubdirectories = true; watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite | NotifyFilters.DirectoryName | NotifyFilters.Size | NotifyFilters.Attributes; watcher.Changed += new FileSystemEventHandler(watcher_Changed); watcher.Deleted += new FileSystemEventHandler(watcher_Changed); watcher.EnableRaisingEvents = true; watchers.Add(watcher, manager); dirtyVC.Add(manager); }
internal void ForceRefresh() { lock (dirtyVC) { foreach (FileSystemWatcher watcher in watchers.Keys) { IVCManager manager = watchers[watcher]; dirtyVC.Add(manager); } } updateTimer.Stop(); updateTimer.Interval = 4000; updateTimer.Start(); }
public void Changed(IVCManager manager) { if (disposing || updateTimer == null) { return; } lock (dirtyVC) { dirtyVC.Add(manager); } updateTimer.Stop(); updateTimer.Start(); }
private void watcher_Changed(object sender, FileSystemEventArgs e) { if (lastDirtyPath != null && e.FullPath.StartsWith(lastDirtyPath)) { return; } lastDirtyPath = e.FullPath; FileSystemWatcher watcher = (FileSystemWatcher)sender; IVCManager manager = watchers[watcher]; if (manager.SetPathDirty(e.FullPath, watcher.Path)) { Changed(manager); } }
internal void ForceRefresh() { lock (dirtyVC) { foreach (FileSystemWatcher watcher in watchers.Keys) { IVCManager manager = watchers[watcher]; if (!dirtyVC.Contains(manager)) { dirtyVC.Add(manager); } } } (PluginBase.MainForm as Form).BeginInvoke((MethodInvoker) delegate { updateTimer.Stop(); updateTimer.Interval = 1000; updateTimer.Start(); }); }
public void Changed(IVCManager manager) { if (disposing || updateTimer == null) { return; } lock (dirtyVC) { if (!dirtyVC.Contains(manager)) { dirtyVC.Add(manager); } } (PluginBase.MainForm as Form).BeginInvoke((MethodInvoker) delegate { updateTimer.Stop(); updateTimer.Start(); }); }
void UpdateNodeStatus(GenericNode node) { if (node.Meta == null) { node.Meta = new Dictionary <string, object>(); } if (!node.Meta.ContainsKey(META_VC)) { LocateVC(node); } IVCManager currentVC = node.Meta[META_VC] as IVCManager; string root = (string)node.Meta[META_ROOT]; if (currentVC != null) { VCItemStatus status = currentVC.GetOverlay(node.BackingPath, root); node.Meta[META_STATUS] = status; OverlayMap.SetOverlay(status, node, currentTree); } }
void updateTimer_Tick(object sender, System.Timers.ElapsedEventArgs e) { updateTimer.Stop(); updateTimer.Interval = 4000; lastDirtyPath = null; if (disposing) { return; } lock (dirtyVC) { foreach (FileSystemWatcher watcher in watchers.Keys) { IVCManager manager = watchers[watcher]; if (dirtyVC.Contains(manager)) { manager.GetStatus(watcher.Path); } } dirtyVC.Clear(); } }
public void AddVCManager(IVCManager manager) { ProjectWatcher.VCManagers.Add(manager); manager.OnChange += manager_OnChange; }
public void Changed(IVCManager manager) { if (disposing || updateTimer == null) return; lock (dirtyVC) { if (!dirtyVC.Contains(manager)) dirtyVC.Add(manager); } (PluginBase.MainForm as Form).BeginInvoke((MethodInvoker)delegate { updateTimer.Stop(); updateTimer.Start(); }); }
public ProjectSelectionState(ProjectTreeView tree) { if (tree == null || tree.SelectedNodes.Count == 0) { return; } foreach (TreeNode node in tree.SelectedNodes) { if (node is FileNode) { Files++; } else if (node is DirectoryNode) { Dirs++; } else { return; // unknown node in selection - no action } GenericNode gnode = (GenericNode)node; if (gnode.Meta == null || !gnode.Meta.ContainsKey(OverlayManager.META_STATUS) || !gnode.Meta.ContainsKey(OverlayManager.META_VC)) { return; // incomplete status } if (Manager == null) { Manager = gnode.Meta[OverlayManager.META_VC] as IVCManager; } else if (gnode.Meta[OverlayManager.META_VC] != Manager) { return; // several managers... } VCItemStatus status = (VCItemStatus)(gnode.Meta[OverlayManager.META_STATUS]); if (status == VCItemStatus.Unknown) { Unknown++; } else if (status == VCItemStatus.Ignored) { Ignored++; } else if (status == VCItemStatus.Added) { Added++; } else if (status == VCItemStatus.Conflicted) { Conflict++; } else if (status == VCItemStatus.Modified) { Modified++; Revert++; Diff++; } else if (status == VCItemStatus.Deleted) { Revert++; Diff++; } else if (status == VCItemStatus.Replaced) { Replaced++; Revert++; } else { Other++; } Total++; } }
internal static bool HandleFileDelete(string[] paths, bool confirm) { if (paths == null || paths.Length == 0) { return(false); } WatcherVCResult result = fsWatchers.ResolveVC(Path.GetDirectoryName(paths[0])); if (result == null) { return(false); } List <string> svnRemove = new List <string>(); List <string> regularRemove = new List <string>(); List <string> hasModification = new List <string>(); List <string> hasUnknown = new List <string>(); try { foreach (string path in paths) { result = fsWatchers.ResolveVC(path, true); if (result == null || result.Status == VCItemStatus.Unknown || result.Status == VCItemStatus.Ignored) { regularRemove.Add(path); } else { IVCManager manager = result.Manager; string root = result.Watcher.Path; int p = root.Length + 1; if (Directory.Exists(path)) { List <string> files = new List <string>(); GetAllFiles(path, files); foreach (string file in files) { VCItemStatus status = manager.GetOverlay(file, root); if (status == VCItemStatus.Unknown || status == VCItemStatus.Ignored) { hasUnknown.Add(file.Substring(p)); } else if (status > VCItemStatus.UpToDate) { hasModification.Add(file.Substring(p)); } } } else if (result.Status > VCItemStatus.UpToDate) { hasModification.Add(path); } if (svnRemove.Count > 0) { if (Path.GetDirectoryName(svnRemove[0]) != Path.GetDirectoryName(path)) { throw new UnsafeOperationException(TextHelper.GetString("SourceControl.Info.ElementsLocatedInDiffDirs")); } } svnRemove.Add(path); } } if (regularRemove.Count > 0 && svnRemove.Count > 0) { throw new UnsafeOperationException(TextHelper.GetString("SourceControl.Info.MixedSelectionOfElements")); } if (svnRemove.Count == 0 && regularRemove.Count > 0) { return(false); // regular deletion } } catch (UnsafeOperationException upex) { MessageBox.Show(upex.Message, TextHelper.GetString("SourceControl.Info.UnsafeDeleteOperation"), MessageBoxButtons.OK, MessageBoxIcon.Stop); return(true); // prevent regular deletion } if (hasUnknown.Count > 0 && confirm) { string title = TextHelper.GetString("FlashDevelop.Title.ConfirmDialog"); string msg = TextHelper.GetString("SourceControl.Info.ConfirmUnversionedDelete") + "\n\n" + GetSomeFiles(hasUnknown); if (MessageBox.Show(msg, title, MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) != DialogResult.OK) { return(true); } } if (hasModification.Count > 0 && confirm) { string title = TextHelper.GetString("FlashDevelop.Title.ConfirmDialog"); string msg = TextHelper.GetString("SourceControl.Info.ConfirmLocalModsDelete") + "\n\n" + GetSomeFiles(hasModification); if (MessageBox.Show(msg, title, MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) != DialogResult.OK) { return(true); } } return(result.Manager.FileActions.FileDelete(paths, confirm)); }
public WatcherVCResult(FileSystemWatcher watcher, IVCManager manager) { Watcher = watcher; Manager = manager; }
public void Changed(IVCManager manager) { if (disposing || updateTimer == null) return; lock (dirtyVC) { if (!dirtyVC.Contains(manager)) dirtyVC.Add(manager); } updateTimer.Stop(); updateTimer.Start(); }
private void CreateWatcher(string path, IVCManager manager) { var watcher = new FileSystemWatcher(path); watcher.IncludeSubdirectories = true; watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite | NotifyFilters.DirectoryName | NotifyFilters.Size | NotifyFilters.Attributes; watcher.Changed += new FileSystemEventHandler(Watcher_Changed); watcher.Deleted += new FileSystemEventHandler(Watcher_Changed); watcher.EnableRaisingEvents = true; watchers.Add(watcher, manager); dirtyVC.Add(manager); }