void SetDockNotebookTabTitle() { tab.Text = Title; tab.Notify = show_notification; tab.Dirty = content.IsDirty; if (content.ContentName != null && content.ContentName != "") { tab.Tooltip = content.ContentName; } try { if (content.StockIconId != null) { tab.Icon = ImageService.GetIcon(content.StockIconId, IconSize.Menu); } else if (content.ContentName != null && content.ContentName.IndexOfAny(new char[] { '*', '+' }) == -1) { tab.Icon = DesktopService.GetIconForFile(content.ContentName, Gtk.IconSize.Menu); } } catch (Exception ex) { LoggingService.LogError(ex.ToString()); tab.Icon = DesktopService.GetIconForType("gnome-fs-regular", Gtk.IconSize.Menu); } }
protected virtual void OnTitleChanged(EventArgs e) { fileTypeCondition.SetFileName(content.ContentName ?? content.UntitledName); tab.Text = Title; tab.Notify = show_notification; tab.Dirty = content.IsDirty; if (content.ContentName != null && content.ContentName != "") { tab.Tooltip = content.ContentName; } try { if (content.StockIconId != null) { tab.Icon = ImageService.GetIcon(content.StockIconId, IconSize.Menu); } else if (content.ContentName != null && content.ContentName.IndexOfAny(new char[] { '*', '+' }) == -1) { tab.Icon = DesktopService.GetIconForFile(content.ContentName, Gtk.IconSize.Menu); } } catch (Exception ex) { LoggingService.LogError(ex.ToString()); tab.Icon = DesktopService.GetIconForType("gnome-fs-regular", Gtk.IconSize.Menu); } if (TitleChanged != null) { TitleChanged(this, e); } }
public override void BuildNode(ITreeBuilder treeBuilder, object dataObject, NodeInfo nodeInfo) { ProjectFile file = (ProjectFile)dataObject; nodeInfo.Label = GLib.Markup.EscapeText(file.Link.IsNullOrEmpty ? file.FilePath.FileName : file.Link.FileName); if (!File.Exists(file.FilePath)) { nodeInfo.Label = "<span foreground='red'>" + nodeInfo.Label + "</span>"; } nodeInfo.Icon = DesktopService.GetIconForFile(file.FilePath, Gtk.IconSize.Menu); if (file.IsLink && nodeInfo.Icon != null) { var overlay = ImageService.GetIcon("md-link-overlay").WithSize(Xwt.IconSize.Small); var cached = Context.GetComposedIcon(nodeInfo.Icon, overlay); if (cached != null) { nodeInfo.Icon = cached; } else { var ib = new Xwt.Drawing.ImageBuilder(nodeInfo.Icon.Width, nodeInfo.Icon.Height); ib.Context.DrawImage(nodeInfo.Icon, 0, 0); ib.Context.DrawImage(overlay, 0, 0); var res = ib.ToVectorImage(); ib.Dispose(); Context.CacheComposedIcon(nodeInfo.Icon, overlay, res); nodeInfo.Icon = res; } } }
public override void BuildNode(ITreeBuilder treeBuilder, object dataObject, NodeInfo nodeInfo) { base.BuildNode(treeBuilder, dataObject, nodeInfo); var file = (File)dataObject; nodeInfo.Label = file.Name; nodeInfo.Icon = DesktopService.GetIconForFile(file.RelativePath); }
public override void BuildNode(ITreeBuilder treeBuilder, object dataObject, NodeInfo nodeInfo) { SolutionFolderFileNode file = (SolutionFolderFileNode)dataObject; nodeInfo.Label = file.FileName.FileName; if (!System.IO.File.Exists(file.FileName)) { nodeInfo.Label = "<span foreground='red'>" + nodeInfo.Label + "</span>"; } nodeInfo.Icon = DesktopService.GetIconForFile(file.FileName, Gtk.IconSize.Menu); }
public override void BuildNode(ITreeBuilder treeBuilder, object dataObject, NodeInfo nodeInfo) { SolutionFolderFileNode file = (SolutionFolderFileNode)dataObject; nodeInfo.Label = file.Name; if (!System.IO.File.Exists(file.Path)) { nodeInfo.Label = "<span foreground='" + Styles.ErrorForegroundColor.ToHexString(false) + "'>" + nodeInfo.Label + "</span>"; } nodeInfo.Icon = DesktopService.GetIconForFile(file.Path, Gtk.IconSize.Menu); }
void FileIconDataFunc(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { if (TreeIter.Zero.Equals(iter)) { return; } var fileNamePixbufRenderer = (CellRendererImage)cell; var searchResult = (SearchResult)store.GetValue(iter, SearchResultColumn); if (searchResult == null) { return; } fileNamePixbufRenderer.Image = DesktopService.GetIconForFile(searchResult.FileName, IconSize.Menu); }
void UpdateFileList(object sender, EventArgs args) { fileStore.Clear(); string pattern = defaultFilter.Patterns [0]; if (filters != null) { pattern = filters[fileTypeCombo.Active].Patterns [0]; } pattern = Regex.Escape(pattern); pattern = pattern.Replace("\\*", ".*"); pattern = pattern.Replace("\\?", "."); pattern = pattern.Replace("\\|", "$|^"); pattern = "^" + pattern + "$"; var regex = new Regex(pattern, RegexOptions.Compiled | RegexOptions.IgnoreCase); string dir = GetSelectedDirectory().ToString(); foreach (ProjectFile pf in project.Files) { string pathStr = pf.FilePath.ToString(); if (pf.Subtype == Subtype.Directory || !pathStr.StartsWith(dir)) { continue; } int split = pathStr.LastIndexOf(System.IO.Path.DirectorySeparatorChar); if (split != dir.Length) { continue; } if (regex.IsMatch(pf.FilePath.FileName)) { fileStore.AppendValues(pf, DesktopService.GetIconForFile(pf.FilePath, Gtk.IconSize.Menu)); } } TreeIter root; if (fileStore.GetIterFirst(out root)) { fileList.Selection.SelectIter(root); } UpdateSensitivity(null, null); }
TreeIter GetFile(Change change) { TextReplaceChange replaceChange = change as TextReplaceChange; if (replaceChange == null) { return(TreeIter.Zero); } TreeIter result; if (!fileDictionary.TryGetValue(replaceChange.FileName, out result)) { fileDictionary[replaceChange.FileName] = result = store.AppendValues(DesktopService.GetIconForFile(replaceChange.FileName, IconSize.Menu), System.IO.Path.GetFileName(replaceChange.FileName), null, true); } return(result); }
public override void BuildNode(ITreeBuilder treeBuilder, object dataObject, NodeInfo nodeInfo) { ProjectFile file = (ProjectFile)dataObject; nodeInfo.Label = GLib.Markup.EscapeText(file.Link.IsNullOrEmpty ? file.FilePath.FileName : file.Link.FileName); if (!File.Exists(file.FilePath)) { nodeInfo.Label = "<span foreground='" + Styles.ErrorForegroundColor.ToHexString(false) + "'>" + nodeInfo.Label + "</span>"; } nodeInfo.Icon = DesktopService.GetIconForFile(file.FilePath, Gtk.IconSize.Menu); if (file.IsLink && nodeInfo.Icon != null) { var overlay = ImageService.GetIcon("md-link-overlay").WithSize(Xwt.IconSize.Small); nodeInfo.OverlayBottomRight = overlay; } }
TreeIter AppendFileInfo(VersionInfo n) { Xwt.Drawing.Image statusicon = VersionControlService.LoadIconForStatus(n.Status); string lstatus = VersionControlService.GetStatusLabel(n.Status); Xwt.Drawing.Image rstatusicon = VersionControlService.LoadIconForStatus(n.RemoteStatus); string rstatus = VersionControlService.GetStatusLabel(n.RemoteStatus); string scolor = n.HasLocalChanges && n.HasRemoteChanges ? "red" : null; string localpath = n.LocalPath.ToRelative(filepath); if (localpath.Length > 0 && localpath[0] == Path.DirectorySeparatorChar) { localpath = localpath.Substring(1); } if (localpath == "") { localpath = "."; } // not sure if this happens bool hasComment = GetCommitMessage(n.LocalPath).Length > 0; bool commit = changeSet.ContainsFile(n.LocalPath); Xwt.Drawing.Image fileIcon; if (n.IsDirectory) { fileIcon = ImageService.GetIcon(MonoDevelop.Ide.Gui.Stock.ClosedFolder, Gtk.IconSize.Menu); } else { fileIcon = DesktopService.GetIconForFile(n.LocalPath, Gtk.IconSize.Menu); } TreeIter it = filestore.AppendValues(statusicon, lstatus, GLib.Markup.EscapeText(localpath).Split('\n'), rstatus, commit, false, n.LocalPath.ToString(), true, hasComment, fileIcon, n.HasLocalChanges, rstatusicon, scolor, n.HasRemoteChange(VersionStatus.Modified)); if (!n.IsDirectory) { filestore.AppendValues(it, statusicon, "", new string[0], "", false, true, n.LocalPath.ToString(), false, false, fileIcon, false, null, null, false); } return(it); }
void AddFile(FilePath filePath) { var relativePath = filePath.ToRelative(baseDirectory); TreeIter iter = GetPath(relativePath.ParentDirectory); object[] values = new object[] { //FIXME: look these pixbufs up lazily in the renderer DesktopService.GetIconForFile(filePath, IconSize.Menu), null, filePath.FileName, filePath.ToString(), false }; if (iter.Equals(TreeIter.Zero)) { store.AppendValues(values); return; } store.AppendValues(iter, values); }
public override void BuildNode(ITreeBuilder treeBuilder, object dataObject, NodeInfo nodeInfo) { SystemFile file = (SystemFile)dataObject; nodeInfo.Label = GLib.Markup.EscapeText(file.Name); nodeInfo.Icon = DesktopService.GetIconForFile(file.Path, Gtk.IconSize.Menu); if (file.ShowTransparent) { var gicon = Context.GetComposedIcon(nodeInfo.Icon, "fade"); if (gicon == null) { gicon = nodeInfo.Icon.WithAlpha(0.5); Context.CacheComposedIcon(nodeInfo.Icon, "fade", gicon); } nodeInfo.Icon = gicon; nodeInfo.Label = "<span foreground='dimgrey'>" + nodeInfo.Label + "</span>"; } }
void TreeSelectionChanged(object o, EventArgs args) { Revision d = SelectedRevision; changedpathstore.Clear(); textviewDetails.Buffer.Clear(); if (d == null) { return; } revertButton.GetNativeWidget <Gtk.Widget> ().Sensitive = revertToButton.GetNativeWidget <Gtk.Widget> ().Sensitive = true; Gtk.TreeIter selectIter = Gtk.TreeIter.Zero; bool select = false; foreach (RevisionPath rp in info.Repository.GetRevisionChanges(d)) { Xwt.Drawing.Image actionIcon; string action = null; if (rp.Action == RevisionAction.Add) { action = GettextCatalog.GetString("Add"); actionIcon = ImageService.GetIcon(Gtk.Stock.Add, Gtk.IconSize.Menu); } else if (rp.Action == RevisionAction.Delete) { action = GettextCatalog.GetString("Delete"); actionIcon = ImageService.GetIcon(Gtk.Stock.Remove, Gtk.IconSize.Menu); } else if (rp.Action == RevisionAction.Modify) { action = GettextCatalog.GetString("Modify"); actionIcon = ImageService.GetIcon("gtk-edit", Gtk.IconSize.Menu); } else if (rp.Action == RevisionAction.Replace) { action = GettextCatalog.GetString("Replace"); actionIcon = ImageService.GetIcon("gtk-edit", Gtk.IconSize.Menu); } else { action = rp.ActionDescription; actionIcon = ImageService.GetIcon(MonoDevelop.Ide.Gui.Stock.Empty, Gtk.IconSize.Menu); } Xwt.Drawing.Image fileIcon = DesktopService.GetIconForFile(rp.Path, Gtk.IconSize.Menu); var iter = changedpathstore.AppendValues(actionIcon, action, fileIcon, System.IO.Path.GetFileName(rp.Path), System.IO.Path.GetDirectoryName(rp.Path), rp.Path, null); changedpathstore.AppendValues(iter, null, null, null, null, null, rp.Path, null); if (rp.Path == preselectFile) { selectIter = iter; select = true; } } if (!string.IsNullOrEmpty(d.Email)) { imageUser.Show(); imageUser.LoadUserIcon(d.Email, 32); } else { imageUser.Hide(); } labelAuthor.Text = d.Author; labelDate.Text = d.Time.ToString(); string rev = d.Name; if (rev.Length > 15) { currentRevisionShortened = true; rev = d.ShortName; } else { currentRevisionShortened = false; } labelRevision.Text = GettextCatalog.GetString("Revision: {0}", rev); textviewDetails.Buffer.Text = d.Message; if (select) { treeviewFiles.Selection.SelectIter(selectIter); treeviewFiles.ExpandRow(treeviewFiles.Model.GetPath(selectIter), true); } }
public ConfirmProjectDeleteDialog(IWorkspaceFileObject item) { this.Build(); this.item = item; store = new TreeStore(typeof(bool), typeof(Xwt.Drawing.Image), typeof(string), typeof(string), typeof(string)); fileList.Model = store; TreeViewColumn col = new TreeViewColumn(); CellRendererToggle crt = new CellRendererToggle(); crt.Toggled += CrtToggled; col.PackStart(crt, false); col.AddAttribute(crt, "active", 0); CellRendererImage crp = new CellRendererImage(); col.PackStart(crp, false); col.AddAttribute(crp, "image", 1); CellRendererText cre = new CellRendererText(); col.PackStart(cre, true); col.AddAttribute(cre, "text", 2); col.AddAttribute(cre, "foreground", 4); fileList.AppendColumn(col); store.SetSortColumnId(2, SortType.Ascending); labelProjectDir.Text = item.BaseDirectory.FullPath; HashSet <string> itemFiles = new HashSet <string> (); HashSet <string> knownPaths = new HashSet <string> (); foreach (FilePath file in item.GetItemFiles(true)) { itemFiles.Add(file.FullPath); knownPaths.Add(file.FullPath + "~"); } foreach (string ext in knownExtensions) { knownPaths.Add(item.FileName.ChangeExtension(ext)); } FillDirRec(TreeIter.Zero, item, itemFiles, knownPaths, item.BaseDirectory, false); if (item.BaseDirectory != item.ItemDirectory) { // If the project has a custom base directory, make sure the project files // from the item directory are shown in the list foreach (FilePath f in item.GetItemFiles(false)) { if (!f.IsChildPathOf(item.BaseDirectory)) { var pix = DesktopService.GetIconForFile(f, IconSize.Menu); paths [f] = store.AppendValues(true, pix, f.FileName, f.ToString()); } } } if (item is SolutionFolderItem) { var sol = ((SolutionFolderItem)item).ParentSolution; var bdir = item.BaseDirectory; if (sol.GetItemFiles(false).Any(f => f.IsChildPathOf(bdir)) || sol.GetAllItems <SolutionItem> ().Any(it => it != item && it.GetItemFiles(true).Any(f => f.IsChildPathOf(bdir)))) { radioDeleteAll.Sensitive = false; labelProjectDir.Text = GettextCatalog.GetString("Project directory can't be deleted since it contains files from other projects or solutions"); } } if (item.BaseDirectory.FileName == item.Name && radioDeleteAll.Sensitive) { radioDeleteAll.Active = true; fileList.Sensitive = false; } else { radioDeleteSel.Active = true; Focus = radioDeleteSel; } }
ChildInfo FillDirRec(Gtk.TreeIter iter, IWorkspaceFileObject item, HashSet <string> itemFiles, HashSet <string> knownPaths, FilePath dir, bool forceSet) { ChildInfo cinfo = ChildInfo.AllSelected; bool hasChildren = false; foreach (string sd in knownSubdirs) { if (dir == item.BaseDirectory.Combine(sd)) { forceSet = true; break; } } TreeIter dit; if (!iter.Equals(TreeIter.Zero)) { dit = store.AppendValues(iter, false, DesktopService.GetIconForFile(dir, IconSize.Menu), dir.FileName.ToString(), dir.ToString()); fileList.ExpandRow(store.GetPath(iter), false); } else { dit = store.AppendValues(false, DesktopService.GetIconForFile(dir, IconSize.Menu), dir.FileName.ToString(), dir.ToString()); } paths [dir] = dit; foreach (string file in Directory.GetFiles(dir)) { string path = System.IO.Path.GetFileName(file); var pix = DesktopService.GetIconForFile(file, IconSize.Menu); bool active = itemFiles.Contains(file); string color = null; if (!active) { pix = pix.WithAlpha(0.5); color = "dimgrey"; } else { cinfo |= ChildInfo.HasProjectFiles; } active = active || forceSet || knownPaths.Contains(file); if (!active) { cinfo &= ~ChildInfo.AllSelected; } else { cinfo |= ChildInfo.SomeSelected; } paths [file] = store.AppendValues(dit, active, pix, path, file, color); if (!hasChildren) { hasChildren = true; fileList.ExpandRow(store.GetPath(dit), false); } } foreach (string cdir in Directory.GetDirectories(dir)) { hasChildren = true; ChildInfo ci = FillDirRec(dit, item, itemFiles, knownPaths, cdir, forceSet); if ((ci & ChildInfo.AllSelected) == 0) { cinfo &= ~ChildInfo.AllSelected; } cinfo |= ci & (ChildInfo.SomeSelected | ChildInfo.HasProjectFiles); } if ((cinfo & ChildInfo.AllSelected) != 0 && hasChildren) { store.SetValue(dit, 0, true); } if ((cinfo & ChildInfo.HasProjectFiles) == 0) { var pix = DesktopService.GetIconForFile(dir, IconSize.Menu).WithAlpha(0.5); store.SetValue(dit, 1, pix); store.SetValue(dit, 4, "dimgrey"); } if ((cinfo & ChildInfo.SomeSelected) != 0 && (cinfo & ChildInfo.AllSelected) == 0) { fileList.ExpandRow(store.GetPath(dit), false); } else { fileList.CollapseRow(store.GetPath(dit)); } return(cinfo); }