public override QModelIndex Index(int row, int column, QModelIndex parent) { string start = "Index at " + row + ", " + column + " requested with parent " + this.SerializeModelIndex(parent) + ""; if (!this.HasIndex(row, column, parent)) { m_Log.Debug(start + " (answer: empty)."); return(new QModelIndex()); } SolutionItem parentItem; if (!parent.IsValid()) { parentItem = this.m_RootItem; } else { parentItem = parent.InternalPointer() as SolutionItem; } SolutionItem childItem = parentItem[row]; if (childItem != null) { QModelIndex model = this.CreateIndex(row, column, childItem); m_Log.Debug(start + " (answer: " + this.SerializeModelIndex(model) + ")."); return(model); } else { m_Log.Debug(start + " (answer: empty)."); return(new QModelIndex()); } }
public override QModelIndex Parent(QModelIndex child) { string start = "Parent of " + this.SerializeModelIndex(child) + " requested"; if (!child.IsValid()) { m_Log.Debug(start + " (answer: empty)."); return(new QModelIndex()); } SolutionItem childItem = child.InternalPointer() as SolutionItem; SolutionItem parentItem = childItem.Parent; if (parentItem == this.m_RootItem || parentItem == null) { // FIXME: This can cause weirdness with broken trees as the root node // will be placed under folders if the structure is incorrect! m_Log.Debug(start + " (answer: empty)."); return(new QModelIndex()); } QModelIndex result = this.CreateIndex(parentItem.Index, 0, parentItem); m_Log.Debug(start + " (answer: " + this.SerializeModelIndex(result) + ")."); return(result); }
public override uint Flags(QModelIndex index) { if (!index.IsValid()) { return((uint)Qt.ItemFlag.ItemIsEnabled); } return((uint)(Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsSelectable)); }
public override int ColumnCount(QModelIndex parent) { if (parent.IsValid()) { return(((TreeItem)parent.InternalPointer()).ColumnCount()); } else { return(rootItem.ColumnCount()); } }
public override uint Flags(QModelIndex index) { m_Log.Debug("Flags of " + this.SerializeModelIndex(index) + " requested."); if (!index.IsValid()) { return(0); } return((uint)(ItemFlag.ItemIsEnabled | ItemFlag.ItemIsSelectable)); }
private string SerializeModelIndex(QModelIndex index) { if (index == null) { return("<null>"); } else if (!index.IsValid()) { return("<invalid>"); } return("<valid>"); //return "(" + this.SerializeModelIndex(index.Parent()) + ", " + index.Row() + ", " + index.Column() + ")"; }
public override int RowCount(QModelIndex parent) { TreeItem parentItem; if (!parent.IsValid()) { parentItem = rootItem; } else { parentItem = (TreeItem)parent.InternalPointer(); } return(parentItem.ChildCount()); }
void on_mucTree_activated(QModelIndex index) { if (index.IsValid()) { if (index.InternalPointer() is BookmarkConference) { Account account = (Account)index.Parent().InternalPointer(); BookmarkConference conf = (BookmarkConference)index.InternalPointer(); try { account.JoinMuc(conf.JID, conf.Password); } catch (UserException e) { QMessageBox.Critical(this.TopLevelWidget(), "Synapse", e.Message); } } } }
public override QVariant Data(QModelIndex index, int role) { if (!index.IsValid()) { return(new QVariant()); } if (role != (int)Qt.ItemDataRole.DisplayRole) { return(new QVariant()); } TreeItem item = (TreeItem)index.InternalPointer(); return(item.Data(index.Column())); }
public override QModelIndex Parent(QModelIndex index) { if (!index.IsValid()) { return(new QModelIndex()); } TreeItem childItem = (TreeItem)index.InternalPointer(); TreeItem parentItem = childItem.Parent(); if (parentItem == rootItem) { return(new QModelIndex()); } return(CreateIndex(parentItem.Row(), 0, parentItem)); }
public override QVariant Data(QModelIndex index, int role) { string start = "Data of " + this.SerializeModelIndex(index) + " requested with role " + role; if (!index.IsValid()) { m_Log.Debug(start + " (answer: empty)."); return(new QVariant()); } if (role != (int)ItemDataRole.DisplayRole && role != (int)ItemDataRole.DecorationRole) { m_Log.Debug(start + " (answer: empty)."); return(new QVariant()); } if (index.Column() == 0) { if (role == (int)ItemDataRole.DisplayRole) { m_Log.Debug(start + " (answer: \"" + (index.InternalPointer() as SolutionItem).Text + "\")."); return((index.InternalPointer() as SolutionItem).Text); } else if (role == (int)ItemDataRole.DecorationRole) { string key = (index.InternalPointer() as SolutionItem).ImageKey; System.Drawing.Image image = this.m_ExplorerTool.m_LinuxImageList[key]; if (image == null) { m_Log.Error("No association icon found for image key '" + key + "'."); } else { m_Log.Debug(start + " (answer: <qicon>)."); return(LinuxImageList.ConvertToQIcon(image)); } } } m_Log.Debug(start + " (answer: empty)."); return(new QVariant()); }
public override QModelIndex Index(int row, int column, QModelIndex parent) { TreeItem parentItem; if (!parent.IsValid()) { parentItem = rootItem; } else { parentItem = (TreeItem)parent.InternalPointer(); } TreeItem childItem = parentItem.Child(row); if (childItem != null) { return(CreateIndex(row, column, childItem)); } else { return(new QModelIndex()); } }
public override int RowCount(QModelIndex parent) { string start = "Row count of " + this.SerializeModelIndex(parent) + " requested"; SolutionItem parentItem; if (parent.Column() > 0) { m_Log.Debug(start + " (answer: 0)."); return(0); } if (!parent.IsValid()) { parentItem = this.m_RootItem; } else { parentItem = parent.InternalPointer() as SolutionItem; } m_Log.Debug(start + " (answer: " + parentItem.Count + ")."); return(parentItem.Count); }