void removeRow() { Console.WriteLine("in removeRow"); try { // if(arg != null){ var model = RequestTreeView.Model; // Console.WriteLine ("in removeRow 2"); // TreeIter iter; // Console.WriteLine ("in removeRow 3"); // model.GetIter (out iter, arg.Path); var title = model.GetValue(currIter, 0); var body = model.GetValue(currIter, 1); var user = model.GetValue(currIter, 2); var createdAt = model.GetValue(currIter, 3); var status = model.GetValue(currIter, 4); var number = model.GetValue(currIter, 5); Console.WriteLine("Title: " + title + "\nNumber: " + number + "\nUser: "******"\nCreated: " + createdAt + "\n\nComments:\n\n" + body); requestListStore.Remove(ref currIter); Console.WriteLine("in removeRow 5"); textview1.Buffer.Text = ""; // } } catch (Exception ex) { Console.WriteLine(ex); } }
protected virtual void OnBtnDeleteFilterClicked(object sender, System.EventArgs e) { TreeSelection ts = tvFilter.Selection; TreeIter ti = new TreeIter(); ts.GetSelected(out ti); TreePath[] tp = ts.GetSelectedRows(); if (tp.Length < 1) { return; } LogicalSystem cd = (LogicalSystem)tvFilter.Model.GetValue(ti, 1); if (cd == null) { return; } MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.YesNo, MainClass.Languages.Translate("delete_filter", cd.Display), "", Gtk.MessageType.Question, parentWindow); int result = md.ShowDialog(); if (result != (int)Gtk.ResponseType.Yes) { return; } conditions.Remove(cd); maskStore.Clear(); filterStore.Remove(ref ti); }
protected void OnBtnDeleteClicked(object sender, EventArgs e) { MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.YesNo, MainClass.Languages.Translate("are_you_sure"), "", Gtk.MessageType.Question, parentWindow); int result = md.ShowDialog(); if (result != (int)Gtk.ResponseType.Yes) { return; } TreeSelection ts = tvExtension.Selection; TreeIter ti = new TreeIter(); ts.GetSelected(out ti); TreePath[] tp = ts.GetSelectedRows(); if (tp.Length < 1) { return; } MainClass.Settings.ExtensionList.Remove(selectedExtensionSetting); resolStore.Remove(ref ti); tvExtension.Selection.SelectPath(new TreePath("0")); }
protected virtual void OnBtnDeleteFieldClicked(object sender, System.EventArgs e) { TreeSelection ts = tvFields.Selection; TreeIter ti = new TreeIter(); ts.GetSelected(out ti); TreePath[] tp = ts.GetSelectedRows(); if (tp.Length < 1) { return; } FieldTable cd = (FieldTable)tvFields.Model.GetValue(ti, 2); if (cd == null) { return; } MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.YesNo, MainClass.Languages.Translate("delete_field", cd.Name), "", Gtk.MessageType.Question, this); int result = md.ShowDialog(); if (result != (int)Gtk.ResponseType.Yes) { return; } fields.Remove(cd); fieldsStore.Remove(ref ti); }
private void manager_FileTransferRemoved(object sender, FileTransferEventArgs e) { try { // Remove transfer from list Gtk.TreeIter iter; transferListStore.GetIterFirst(out iter); if (transferListStore.IterIsValid(iter)) { do { IFileTransfer currentItem = (IFileTransfer)transferListStore.GetValue(iter, 0); if (currentItem == e.Transfer) { transferListStore.Remove(ref iter); return; } } while (transferListStore.IterNext(ref iter)); } Gui.MainWindow.RefreshCounts(); } catch (Exception ex) { Core.LoggingService.LogError(ex); Gui.ShowErrorDialog(ex.ToString(), Gui.MainWindow.Window); } }
private void on_item_removed(object Sender, ListRemoveEventArgs args) { //sterge din store iterul Gtk.TreeIter iter; this.Model.GetIterFromString(out iter, args.Index.ToString()); store.Remove(ref iter); this.QueueDraw(); }
protected void OnTreeviewPatternsCursorChanged(object sender, EventArgs e) { TreeModel model; TreeIter iter; if ((sender as TreeView).Selection.GetSelected(out model, out iter)) { SelectedPattern = (Pattern)model.GetValue(iter, PatternColumn); if (ignoreNextClick) { ignoreNextClick = false; return; } TreePath path; TreeViewColumn column; (sender as TreeView).GetCursor(out path, out column); if (column == (sender as TreeView).Columns[4]) //Delete clicked { if (MainWindow.ConfirmDelete()) { ignoreNextClick = true; PatternListStore.Remove(ref iter); DataModel.Patterns.Remove(SelectedPattern); SelectedPattern = null; } } else if (column == (sender as TreeView).Columns[3]) //Copy clicked { Pattern pattern = new Pattern(); pattern.Assign(SelectedPattern); pattern.Name = DataModel.GetPatternName(SelectedPattern.Name, 2); if (EditPatternDialog.ShowForm(pattern, DataModel, "Copy Pattern " + SelectedPattern.Name)) { AddPattern(pattern); } } else if (column == (sender as TreeView).Columns[2]) //Edit clicked { EditPatternDialog.ShowForm(SelectedPattern, DataModel, "Edit Pattern"); } else if (column == (sender as TreeView).Columns[0]) //Play clicked { if (SelectedPattern == PlayingPattern) { StopPattern(); } else { PlayPattern(SelectedPattern); model.SetValue(iter, 0, "icon-dark-stop"); } } } }
protected virtual void OnBtnDeleteCond1Clicked(object sender, System.EventArgs e) { if (!MainClass.LicencesSystem.CheckFunction("conditions", parentWindow)) { return; } TreeSelection ts = tvConditions.Selection; TreeIter ti = new TreeIter(); ts.GetSelected(out ti); TreePath[] tp = ts.GetSelectedRows(); if (tp.Length < 1) { return; } Condition cd = (Condition)tvConditions.Model.GetValue(ti, 2); if (cd == null) { return; } TreeSelection tsR = tvRules.Selection; TreeIter tiR = new TreeIter(); tsR.GetSelected(out tiR); TreePath[] tpR = tsR.GetSelectedRows(); if (tpR.Length < 1) { return; } Rule rl = (Rule)tvRules.Model.GetValue(tiR, 2); if (rl == null) { return; } MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.YesNo, MainClass.Languages.Translate("delete_rule", rl.Name), "", Gtk.MessageType.Question, parentWindow); int result = md.ShowDialog(); if (result != (int)Gtk.ResponseType.Yes) { return; } ruleStore.Remove(ref tiR); Condition cd2 = conditions.Find(x => x.Id == cd.Id); cd2.Rules.Remove(rl); conditionStore.SetValues(ti, cd2.Id, cd2.Name, cd2); }
protected void OnRemove(object se, EventArgs args) { Gtk.TreeIter iter; Gtk.TreeModel model; if (libraryList.Selection.GetSelected(out model, out iter)) { string s = (string)store.GetValue(iter, 0); store.Remove(ref iter); SteticMain.SteticApp.RemoveWidgetLibrary(s); } }
void RemoveJob(JobInfo job) { lock (listStore) { TreeIter iter = FindJob(job); if (!iter.Equals(TreeIter.Zero)) { listStore.Remove(ref iter); } } }
private void on_removeSharedFolderButton_clicked(object o, EventArgs args) { TreeModel model; TreeIter iter; sharedFoldersList.Selection.GetSelected(out model, out iter); if (sharedFoldersListStore.IterIsValid(iter)) { sharedFoldersListStore.Remove(ref iter); } }
public static void ClearData() { Gtk.TreeIter Iter = new Gtk.TreeIter(); if (MusicListStore.GetIterFirst(out Iter)) { do { MusicListStore.Remove(ref Iter); } while (MusicListStore.IterIsValid(Iter)); } }
protected virtual void OnBtnDeleteMaskClicked(object sender, System.EventArgs e) { TreeSelection ts = tvFilter.Selection; TreeIter ti = new TreeIter(); ts.GetSelected(out ti); TreePath[] tp = ts.GetSelectedRows(); if (tp.Length < 1) { return; } LogicalSystem cd = (LogicalSystem)tvFilter.Model.GetValue(ti, 1); if (cd == null) { return; } TreeSelection tsR = tvMask.Selection; TreeIter tiR = new TreeIter(); tsR.GetSelected(out tiR); TreePath[] tpR = tsR.GetSelectedRows(); if (tpR.Length < 1) { return; } string rl = (string)tvMask.Model.GetValue(tiR, 0); if (String.IsNullOrEmpty(rl)) { return; } MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.YesNo, MainClass.Languages.Translate("delete_mask", rl), "", Gtk.MessageType.Question, parentWindow); int result = md.ShowDialog(); if (result != (int)Gtk.ResponseType.Yes) { return; } maskStore.Remove(ref tiR); LogicalSystem cd2 = conditions.Find(x => x.Display.ToUpper() == cd.Display.ToUpper()); cd2.Mask.Remove(rl); filterStore.SetValues(ti, cd2.Display, cd2); }
public void RemoveSelectedRow() { Gtk.TreeIter iter = new Gtk.TreeIter(); store.GetIterFirst(out iter); if (tree.Selection.IterIsSelected(iter)) { store.Remove(ref iter); return; } while (store.IterNext(ref iter)) { if (tree.Selection.IterIsSelected(iter)) { store.Remove(ref iter); break; } } return; }
protected void RemoveStream(object sender, EventArgs e) { TreeIter iter; TreeModel model; if (streamList.Selection.GetSelected(out model, out iter)) { streamListStore.Remove(ref iter); } // Save to list file SaveList(streamListStore, Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).ToString() + "/gLiveStreamer/"); }
// <summary> // This will remove the tag from every note that is currently tagged // and from the main list of tags. // </summary> public static void RemoveTag(Tag tag) { if (tag == null) { throw new ArgumentNullException("TagManager.RemoveTag () called with a null tag"); } if (tag.IsProperty || tag.IsSystem) { lock (locker) { internal_tags.Remove(tag.NormalizedName); } } bool tag_removed = false; if (tag_map.ContainsKey(tag.NormalizedName)) { lock (locker) { if (tag_map.ContainsKey(tag.NormalizedName)) { Gtk.TreeIter iter = tag_map [tag.NormalizedName]; if (!tags.Remove(ref iter)) { Logger.Debug("TagManager: Removed tag: {0}", tag.NormalizedName); } else { // FIXME: For some really weird reason, this block actually gets called sometimes! Logger.Warn("TagManager: Call to remove tag from ListStore failed: {0}", tag.NormalizedName); } tag_map.Remove(tag.NormalizedName); Logger.Debug("Removed TreeIter from tag_map: {0}", tag.NormalizedName); tag_removed = true; foreach (Note note in tag.Notes) { note.RemoveTag(tag); } } } } if (tag_removed && TagRemoved != null) { TagRemoved(tag.NormalizedName); } }
protected void OnRemoveResource(object ob, EventArgs args) { Gtk.TreeIter iter; Gtk.TreeModel model; if (resourceList.Selection.GetSelected(out model, out iter)) { string res = (string)resourceListStore.GetValue(iter, 2); Gtk.MessageDialog msg = new Gtk.MessageDialog(dialog, DialogFlags.Modal, MessageType.Question, ButtonsType.YesNo, "Are you sure you want to delete the resource '{0}'?", res); if (msg.Run() == (int)ResponseType.Yes) { resourceProvider.RemoveResource(res); resourceListStore.Remove(ref iter); } msg.Destroy(); } }
protected virtual void RemoveActivated(object sender, System.EventArgs e) { TreeIter iter; if (targetView.Selection.GetSelected(out iter)) { WebDeployTarget targetToRemove = (WebDeployTarget)targetList.GetValue(iter, LISTCOL_TARGET); localCollection.Remove(targetToRemove); targetList.Remove(ref iter); } if (targetList.IterIsValid(iter) || (localCollection.Count > 0 && targetList.IterNthChild(out iter, localCollection.Count - 1))) { targetView.Selection.SelectIter(iter); } }
protected void OnBtnRemoveCompilerClicked(object sender, System.EventArgs e) { Gtk.TreeIter iter; if (cmbCompilers.GetActiveIter(out iter)) { Gtk.TreeIter iter2 = iter; compilerStore.Remove(ref iter2); if (compilerStore.IterNext(ref iter) || compilerStore.GetIterFirst(out iter)) { cmbCompilers.SetActiveIter(iter); } else { Load(null); } } }
/// <summary> /// Event Handler for Remove Button Clicked /// </summary> public void OnRemoveButtonClicked(object o, EventArgs args) { TreeModel tModel; Queue iterQueue; iterQueue = new Queue(); TreeSelection tSelect = SelTreeView.Selection; Array treePaths = tSelect.GetSelectedRows(out tModel); // remove compiler warning if (tModel != null) { tModel = null; } // We can't remove anything while getting the iters // because it will change the paths and we'll remove // the wrong stuff. foreach (TreePath tPath in treePaths) { TreeIter iter; if (SelTreeStore.GetIter(out iter, tPath)) { iterQueue.Enqueue(iter); } } // Now that we have all of the TreeIters, loop and // remove them all while (iterQueue.Count > 0) { TreeIter iter = (TreeIter)iterQueue.Dequeue(); MemberInfo member = (MemberInfo)SelTreeStore.GetValue(iter, 0); selectedUsers.Remove(member.UserID); SelTreeStore.Remove(ref iter); } if (SelTreeStore.IterNChildren() == 0) { SetResponseSensitive(ResponseType.Ok, false); } }
private void StoreSearch(string query) { Gtk.TreeIter iter; if (history.GetIterFirst(out iter)) { string val; do { val = (string)history.GetValue(iter, 0); if (val == query) { history.Remove(ref iter); } } while (val != query && history.IterNext(ref iter)); } iter = history.Insert(0); history.SetValue(iter, 0, query); }
protected void OnBtnDeleteRuleClicked(object sender, System.EventArgs e) { TreeSelection ts = tvResolution.Selection; TreeIter ti = new TreeIter(); ts.GetSelected(out ti); TreePath[] tp = ts.GetSelectedRows(); if (tp.Length < 1) { return; } Rule cd = (Rule)tvResolution.Model.GetValue(ti, 3); if (cd == null) { return; } if (cd.Id == -1) { MessageDialogs mdError = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, MainClass.Languages.Translate("delete_resolution_system"), "", Gtk.MessageType.Error, parentWindow); mdError.ShowDialog(); return; } MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.YesNo, MainClass.Languages.Translate("delete_resolution", cd.Name), "", Gtk.MessageType.Question, parentWindow); int result = md.ShowDialog(); if (result != (int)Gtk.ResponseType.Yes) { return; } MainClass.Settings.Resolution.Rules.Remove(cd); resolStore.Remove(ref ti); }
protected virtual void OnBtnRemoveClicked(object sender, System.EventArgs e) { TreeSelection ts = tvFiles.Selection; TreeIter ti = new TreeIter(); ts.GetSelected(out ti); TreePath[] tp = ts.GetSelectedRows(); if (tp.Length < 1) { return; } EmulatorDisplay dd = (EmulatorDisplay)tvFiles.Model.GetValue(ti, 2); MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.YesNo, MainClass.Languages.Translate("question_delete_file", dd.FilePath), "", Gtk.MessageType.Question, parentWindow); int result = md.ShowDialog(); if (result != (int)Gtk.ResponseType.Yes) { return; } if (!System.IO.File.Exists(dd.FilePath)) { return; } try { //fileListStore fileListStore.SetValue(ti, 2, null); fileListStore.Remove(ref ti); System.IO.File.Delete(dd.FilePath); } catch { return; } }
void HandleTreeview2KeyPressEvent(object o, KeyPressEventArgs args) { Gtk.TreeSelection selection = (o as Gtk.TreeView).Selection; Gtk.TreeIter iter; Gtk.TreeModel model; if (selection.GetSelected(out model, out iter)) { userLine line = (userLine)model.GetValue(iter, 0); if (args.Event.HardwareKeycode == 119) // DEL { Console.WriteLine("Removing " + line.m_name); user_lines.Remove((userLine)model.GetValue(iter, 0)); treeview_lines_store.Remove(ref iter); } } if (args.Event.HardwareKeycode == 57) // n { userLine line = new userLine("", false, "", "", user_lines.Count + 1, false, 0); treeview_lines_store.AppendValues(line); user_lines.Add(line); } }
void MoveItem (TreeView sourceList, ListStore sourceStore, TreeView targetList, ListStore targetStore) { TreeModel model; TreeIter iter; if (sourceList.Selection.GetSelected (out model, out iter)) { TreeIter newiter = targetStore.AppendValues (sourceStore.GetValue (iter, 0), sourceStore.GetValue (iter, 1)); targetList.Selection.SelectIter (newiter); TreeIter oldIter = iter; if (sourceStore.IterNext (ref iter)) sourceList.Selection.SelectIter (iter); sourceStore.Remove (ref oldIter); } }
protected void OnTreeviewEventsCursorChanged(object sender, EventArgs e) { if (ignoreNexClick) { ignoreNexClick = false; return; } TreeModel model; TreeIter iter; TreeSelection selection = (sender as TreeView).Selection; if (selection.GetSelected(out model, out iter)) { SelectedNotification = (CustomNotification)model.GetValue(iter, 0); TreePath path; TreeViewColumn column; (sender as TreeView).GetCursor(out path, out column); if (column == (sender as TreeView).Columns[DeleteColumnIndex]) //Delete clicked { if (MainWindow.ConfirmDelete()) { ignoreNexClick = true; DataModel.Notifications.Remove(SelectedNotification); NotificationListStore.Remove(ref iter); DataModel.Save(); } } else if (column == (sender as TreeView).Columns[DeleteColumnIndex - 1]) //Copy clicked { if (SelectedNotification.IsUnique()) { MessageBox.Show(ParentForm, String.Format("Only one {0} notification can be used", SelectedNotification.GetTypeName()), MessageType.Error); return; } CustomNotification notification = SelectedNotification.Copy(); notification.Name = DataModel.GetNotificationName(SelectedNotification.Name, 2); if (EditNotification(notification, "Copy Notification")) { NotificationListStore.AppendValues(notification, "icon-dark-pencil-square-o", "icon-dark-clone", "icon-dark-trash", NotificationRegistry.FindIcon(notification.GetType())); DataModel.Notifications.Add(notification); ignoreNexClick = true; SelectNotificationInTree(notification); } } else if (column == (sender as TreeView).Columns[DeleteColumnIndex - 2]) //Edit clicked { EditNotification(); } else if (column == (sender as TreeView).Columns[0]) //Enabled-Disabled clicked { SelectedNotification.Enabled = !SelectedNotification.Enabled; DataModel.Save(); DataModel.Notifications.NotifyUpdate(SelectedNotification); } } }
/// <summary> /// Event Handler for Rename Event Handler /// </summary> protected void RenameFileHandler(object o, EventArgs args) { string newFileName = nameConflictEntry.Text; TreeModel tModel; ConflictHolder ch = null; TreeSelection tSelect = ConflictTreeView.Selection; if (tSelect.CountSelectedRows() == 1) { Array treePaths = tSelect.GetSelectedRows(out tModel); TreeIter iter; if (ConflictTreeStore.GetIter(out iter, (TreePath)treePaths.GetValue(0))) { ch = (ConflictHolder)tModel.GetValue(iter, 0); Conflict lnc = ch.LocalNameConflict; Conflict snc = ch.ServerNameConflict; try { if (snc != null && ifolder.CurrentUserRights == "ReadOnly") { ifws.RenameAndResolveConflict(snc.iFolderID, snc.ConflictID, newFileName); } else { if (lnc != null) { //server file rename is not certified so we are not allowing the local file renamed to same name // this is a work around later we will fix the sever rename as well if (newFileName == oldFileName) { iFolderMsgDialog dg = new iFolderMsgDialog( this, iFolderMsgDialog.DialogType.Error, iFolderMsgDialog.ButtonSet.Ok, "", Util.GS("Name Already Exists"), Util.GS("The specified name already exists. Please choose a different name."), null); dg.Run(); dg.Hide(); dg.Destroy(); return; } Conflict[] conflictList = ifws.GetiFolderConflicts(lnc.iFolderID); ifws.ResolveNameConflict(lnc.iFolderID, lnc.ConflictID, newFileName); foreach (Conflict con in conflictList) { if (con.IsNameConflict && con.ServerName != null) { if (String.Compare(lnc.LocalFullPath, con.ServerFullPath, true) == 0) { if (ifolder.CurrentUserRights == "ReadOnly") { ifws.RenameAndResolveConflict(con.iFolderID, con.ConflictID, con.ServerName); break; } else { ifws.ResolveNameConflict(con.iFolderID, con.ConflictID, con.ServerName); break; } } } } ifws.SynciFolderNow(lnc.iFolderID); } // If this is a name conflict because of case-sensitivity // on Linux, there won't be a conflict on the server. if (snc != null) { //server file rename is not certified so we are not allowing the server file rename, rather rename to the same name // this is a work around later we will fix the sever rename as well if (newFileName != oldFileName) { iFolderMsgDialog dg = new iFolderMsgDialog( this, iFolderMsgDialog.DialogType.Error, iFolderMsgDialog.ButtonSet.Ok, "", Util.GS("Name Already Exists"), Util.GS("The specified name already exists. Please choose a different name."), null); dg.Run(); dg.Hide(); dg.Destroy(); return; } ifws.ResolveNameConflict(snc.iFolderID, snc.ConflictID, ch.Name); } } ConflictTreeStore.Remove(ref iter); } catch (Exception e) { bool bKnownError = true; string headerText = Util.GS("iFolder Conflict Error"); string errText = Util.GS("An error was encountered while resolving the conflict."); if (e.Message.IndexOf("Malformed") >= 0) { headerText = Util.GS("Invalid Characters in Name"); errText = string.Format(Util.GS("The specified name contains invalid characters. Please choose a different name and try again.\n\nNames must not contain any of these characters: {0}"), simws.GetInvalidSyncFilenameChars()); } else if (e.Message.IndexOf("already exists") >= 0) { headerText = Util.GS("Name Already Exists"); errText = Util.GS("The specified name already exists. Please choose a different name."); } else { //bKnownError = false; } iFolderMsgDialog dg = new iFolderMsgDialog( this, iFolderMsgDialog.DialogType.Error, iFolderMsgDialog.ButtonSet.Ok, "", headerText, errText, bKnownError ? null : e.Message); dg.Run(); dg.Hide(); dg.Destroy(); tSelect.SelectIter(iter); // FIXME: Figure out why if the user clicks the "Save" button the focus doesn't return back to the entry text box. (i.e., the next line of code isn't really doing anything) this.FocusChild = nameConflictEntry; return; } UpdateFields(null, false); } } }
public override void LaunchDialogue () { //the Type in the collection IList collection = (IList) Value; string displayName = Property.DisplayName; //populate list with existing items ListStore itemStore = new ListStore (typeof (object), typeof (int), typeof (string)); for (int i=0; i<collection.Count; i++) itemStore.AppendValues(collection [i], i, collection [i].ToString ()); #region Building Dialogue TreeView itemTree; PropertyGrid grid; TreeIter previousIter = TreeIter.Zero; //dialogue and buttons Dialog dialog = new Dialog () { Title = displayName + " Editor", Modal = true, AllowGrow = true, AllowShrink = true, }; var toplevel = this.Container.Toplevel as Window; if (toplevel != null) dialog.TransientFor = toplevel; dialog.AddActionWidget (new Button (Stock.Cancel), ResponseType.Cancel); dialog.AddActionWidget (new Button (Stock.Ok), ResponseType.Ok); //three columns for items, sorting, PropGrid HBox hBox = new HBox (); dialog.VBox.PackStart (hBox, true, true, 5); //propGrid at end grid = new PropertyGrid (base.EditorManager) { CurrentObject = null, WidthRequest = 200, ShowHelp = false }; hBox.PackEnd (grid, true, true, 5); //followed by a ButtonBox VBox buttonBox = new VBox (); buttonBox.Spacing = 6; hBox.PackEnd (buttonBox, false, false, 5); //add/remove buttons Button addButton = new Button (new Image (Stock.Add, IconSize.Button)); buttonBox.PackStart (addButton, false, false, 0); if (types [0].IsAbstract) addButton.Sensitive = false; Button removeButton = new Button (new Gtk.Image (Stock.Remove, IconSize.Button)); buttonBox.PackStart (removeButton, false, false, 0); //sorting buttons Button upButton = new Button (new Image (Stock.GoUp, IconSize.Button)); buttonBox.PackStart (upButton, false, false, 0); Button downButton = new Button (new Image (Stock.GoDown, IconSize.Button)); buttonBox.PackStart (downButton, false, false, 0); //Third column has list (TreeView) in a ScrolledWindow ScrolledWindow listScroll = new ScrolledWindow (); listScroll.WidthRequest = 200; listScroll.HeightRequest = 320; hBox.PackStart (listScroll, false, false, 5); itemTree = new TreeView (itemStore); itemTree.Selection.Mode = SelectionMode.Single; itemTree.HeadersVisible = false; listScroll.AddWithViewport (itemTree); //renderers and attribs for TreeView CellRenderer rdr = new CellRendererText (); itemTree.AppendColumn (new TreeViewColumn ("Index", rdr, "text", 1)); rdr = new CellRendererText (); itemTree.AppendColumn (new TreeViewColumn ("Object", rdr, "text", 2)); #endregion #region Events addButton.Clicked += delegate { //create the object object instance = System.Activator.CreateInstance (types[0]); //get existing selection and insert after it TreeIter oldIter, newIter; if (itemTree.Selection.GetSelected (out oldIter)) newIter = itemStore.InsertAfter (oldIter); //or append if no previous selection else newIter = itemStore.Append (); itemStore.SetValue (newIter, 0, instance); //select, set name and update all the indices itemTree.Selection.SelectIter (newIter); UpdateName (itemStore, newIter); UpdateIndices (itemStore); }; removeButton.Clicked += delegate { //get selected iter and the replacement selection TreeIter iter, newSelection; if (!itemTree.Selection.GetSelected (out iter)) return; newSelection = iter; if (!IterPrev (itemStore, ref newSelection)) { newSelection = iter; if (!itemStore.IterNext (ref newSelection)) newSelection = TreeIter.Zero; } //new selection. Zeroing previousIter prevents trying to update name of deleted iter. previousIter = TreeIter.Zero; if (itemStore.IterIsValid (newSelection)) itemTree.Selection.SelectIter (newSelection); //and the removal and index update itemStore.Remove (ref iter); UpdateIndices (itemStore); }; upButton.Clicked += delegate { TreeIter iter, prev; if (!itemTree.Selection.GetSelected (out iter)) return; //get previous iter prev = iter; if (!IterPrev (itemStore, ref prev)) return; //swap the two itemStore.Swap (iter, prev); //swap indices too object prevVal = itemStore.GetValue (prev, 1); object iterVal = itemStore.GetValue (iter, 1); itemStore.SetValue (prev, 1, iterVal); itemStore.SetValue (iter, 1, prevVal); }; downButton.Clicked += delegate { TreeIter iter, next; if (!itemTree.Selection.GetSelected (out iter)) return; //get next iter next = iter; if (!itemStore.IterNext (ref next)) return; //swap the two itemStore.Swap (iter, next); //swap indices too object nextVal = itemStore.GetValue (next, 1); object iterVal = itemStore.GetValue (iter, 1); itemStore.SetValue (next, 1, iterVal); itemStore.SetValue (iter, 1, nextVal); }; itemTree.Selection.Changed += delegate { TreeIter iter; if (!itemTree.Selection.GetSelected (out iter)) { removeButton.Sensitive = false; return; } removeButton.Sensitive = true; //update grid object obj = itemStore.GetValue (iter, 0); grid.CurrentObject = obj; //update previously selected iter's name UpdateName (itemStore, previousIter); //update current selection so we can update //name next selection change previousIter = iter; }; grid.Changed += delegate { TreeIter iter; if (itemTree.Selection.GetSelected (out iter)) UpdateName (itemStore, iter); }; TreeIter selectionIter; removeButton.Sensitive = itemTree.Selection.GetSelected (out selectionIter); dialog.ShowAll (); grid.ShowToolbar = false; #endregion //if 'OK' put items back in collection //if (MonoDevelop.Ide.MessageService.ShowCustomDialog (dialog, toplevel) == (int)ResponseType.Ok) { DesignerTransaction tran = CreateTransaction (Instance); object old = collection; try { collection.Clear(); foreach (object[] o in itemStore) collection.Add (o[0]); EndTransaction (Instance, tran, old, collection, true); } catch { EndTransaction (Instance, tran, old, collection, false); throw; } } }
private void RemoveItems(ref Contacts cnts, ref ListStore lstore, TreePath[] tPath) { for(int p=(tPath.Length-1); p>=0; p--) { // remove contact from list cnts.SimContacts.RemoveAt(tPath[p].Indices[0]); } for(int p=(tPath.Length-1); p>=0; p--) { // remove contact from list TreeIter ti; bool isIter = lstore.GetIter(out ti, tPath[p]); if (isIter) { lstore.Remove(ref ti); } } }
private void GenerateNotebookPages() { string platformName = MainClass.Settings.Platform.Name; foreach(Rule rl in MainClass.Settings.Platform.Rules){ bool iOsNoMac = false; if( (rl.Tag == -1 ) && !MainClass.Settings.ShowUnsupportedDevices) continue; if( (rl.Tag == -2 ) && !MainClass.Settings.ShowDebugDevices) continue; bool validDevice = true; if(!Device.CheckDevice(rl.Specific) ){ Tool.Logger.Debug("Invalid Device " + rl.Specific); validDevice = false; } ScrolledWindow sw= new ScrolledWindow(); sw.ShadowType = ShadowType.EtchedOut; TreeView tvList = new TreeView(); List<CombinePublish> lcp = project.ProjectUserSetting.CombinePublish.FindAll(x=> x.combineRule.FindIndex(y=>y.ConditionName==platformName && y.RuleId == rl.Id) >-1); List<CombinePublish> lcpDennied = new List<CombinePublish>(); string deviceName = rl.Name; int deviceTyp = rl.Id; ListStore ls = new ListStore(typeof(bool),typeof(string),typeof(CombinePublish),typeof(string),typeof(bool)); string ico="empty.png"; switch (deviceTyp) { case (int)DeviceType.Android_1_6:{ ico = "android.png"; break;} case (int)DeviceType.Android_2_2:{ ico = "android.png"; break;} case (int)DeviceType.Bada_1_0: case (int)DeviceType.Bada_1_1: case (int)DeviceType.Bada_1_2: case (int)DeviceType.Bada_2_0:{ ico = "bada.png"; break;} case (int)DeviceType.Symbian_9_4:{ ico = "symbian.png"; break;} case (int)DeviceType.iOS_5_0:{ ico = "apple.png"; if(!MainClass.Platform.IsMac){ iOsNoMac = true; } break; } case (int)DeviceType.PocketPC_2003SE: case (int)DeviceType.WindowsMobile_5: case (int)DeviceType.WindowsMobile_6:{ ico = "windows.png"; break;} case (int)DeviceType.Windows:{ ico = "win32.png"; break;} case (int)DeviceType.MacOs:{ ico = "macos.png"; break;} } List<CombinePublish> tmp = lcp.FindAll(x=>x.IsSelected == true); NotebookLabel nl = new NotebookLabel(ico,String.Format("{0} ({1})",deviceName,tmp.Count )); nl.Tag=deviceTyp; if(iOsNoMac){ Label lbl=new Label(MainClass.Languages.Translate("ios_available_Mac")); Pango.FontDescription customFont = Pango.FontDescription.FromString(MainClass.Settings.ConsoleTaskFont); customFont.Weight = Pango.Weight.Bold; lbl.ModifyFont(customFont); notebook.AppendPage(lbl, nl); continue; } if(!validDevice){ Label lbl=new Label(MainClass.Languages.Translate("publish_tool_missing")); Pango.FontDescription customFont = Pango.FontDescription.FromString(MainClass.Settings.ConsoleTaskFont); customFont.Weight = Pango.Weight.Bold; lbl.ModifyFont(customFont); notebook.AppendPage(lbl, nl); continue; } ; CellRendererToggle crt = new CellRendererToggle(); crt.Activatable = true; crt.Sensitive = true; tvList.AppendColumn ("", crt, "active", 0); Gtk.CellRendererText fileNameRenderer = new Gtk.CellRendererText(); Gtk.CellRendererText collumnResolRenderer = new Gtk.CellRendererText(); tvList.AppendColumn(MainClass.Languages.Translate("file_name"),fileNameRenderer, "text", 1); tvList.AppendColumn(MainClass.Languages.Translate("resolution_f1"), collumnResolRenderer, "text", 1); tvList.Columns[1].SetCellDataFunc(fileNameRenderer, new Gtk.TreeCellDataFunc(RenderCombine)); tvList.Columns[2].SetCellDataFunc(collumnResolRenderer, new Gtk.TreeCellDataFunc(RenderResolution)); // povolene resolution pre danu platformu PlatformResolution listPR = MainClass.Settings.PlatformResolutions.Find(x=>x.IdPlatform ==deviceTyp); Device dvc = project.DevicesSettings.Find(x=>x.TargetPlatformId ==deviceTyp); string stringTheme = ""; List<System.IO.DirectoryInfo> themeResolution = new List<System.IO.DirectoryInfo>(); // resolution z adresara themes po novom if((project.NewSkin) && (dvc != null)){ Skin skin =dvc.Includes.Skin; if((skin != null) && ( !String.IsNullOrEmpty(skin.Name)) && (!String.IsNullOrEmpty(skin.Theme)) ){ string skinDir = System.IO.Path.Combine(MainClass.Workspace.RootDirectory, MainClass.Settings.SkinDir); stringTheme = System.IO.Path.Combine(skinDir,skin.Name); stringTheme = System.IO.Path.Combine(stringTheme, "themes"); stringTheme = System.IO.Path.Combine(stringTheme, skin.Theme); if (System.IO.Directory.Exists(stringTheme)){ System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(stringTheme); themeResolution = new List<System.IO.DirectoryInfo>(di.GetDirectories()); } } } crt.Toggled += delegate(object o, ToggledArgs args) { if((deviceTyp == (int)DeviceType.Windows)||(deviceTyp == (int)DeviceType.MacOs)){ if(!MainClass.LicencesSystem.CheckFunction("windowsandmac",this)){ return; } } TreeIter iter; if (ls.GetIter (out iter, new TreePath(args.Path))) { bool old = (bool) ls.GetValue(iter,0); CombinePublish cp =(CombinePublish) ls.GetValue(iter,2); cp.IsSelected = !old; ls.SetValue(iter,0,!old); List<CombinePublish> tmp2 = lcp.FindAll(x=>x.IsSelected == true); nl.SetLabel (String.Format("{0} ({1})",deviceName,tmp2.Count )); //if(dvc == null) return; //if(dvc.Includes == null) return; if(dvc.Includes.Skin == null) return; if(String.IsNullOrEmpty(dvc.Includes.Skin.Name) || String.IsNullOrEmpty(dvc.Includes.Skin.Theme)) return; if(cp.IsSelected){ // Najdem ake je rozlisenie v danej combinacii CombineCondition cc = cp.combineRule.Find(x=>x.ConditionId == MainClass.Settings.Resolution.Id); if(cc == null) return; /// nema ziadne rozlisenie v combinacii int indxResol = themeResolution.FindIndex(x=>x.Name.ToLower() == cc.RuleName.ToLower()); if(indxResol<0){ // theme chyba prislusne rozlisenie string error =String.Format("Invalid {0} Skin and {1} Theme, using in {2}. Missing resolutions: {3}. ",dvc.Includes.Skin.Name,dvc.Includes.Skin.Theme,deviceName,cc.RuleName.ToLower()); MainClass.MainWindow.OutputConsole.WriteError(error+"\n"); List<string> lst = new List<string>(); lst.Add(error); MainClass.MainWindow.ErrorWritte("","",lst); } } } }; int cntOfAdded = 0; foreach (CombinePublish cp in lcp){ bool isValid = cp.IsSelected; if (!validDevice) isValid = false; // Najdem ake je rozlisenie v danej combinacii CombineCondition cc = cp.combineRule.Find(x=>x.ConditionId == MainClass.Settings.Resolution.Id); if(cc == null) continue; /// nema ziadne rozlisenie v combinacii int indx = MainClass.Settings.Resolution.Rules.FindIndex(x=> x.Id == cc.RuleId ); if(indx<0) continue; /// rozlisenie pouzite v danej combinacii nexistuje if(cc!= null){ bool isValidResolution = false; //ak nema definovane ziadne povolenia, tak povolene su vsetky if((listPR==null) || (listPR.AllowResolution == null) || (listPR.AllowResolution.Count<1)){ isValidResolution = true; } else { isValidResolution = listPR.IsValidResolution(cc.RuleId); } if(isValidResolution){ // po novom vyhodom aj tie ktore niesu v adresaru themes - pokial je thema definovana if((project.NewSkin) && (themeResolution.Count > 0)){ //cntResolution = 0; int indxResol = themeResolution.FindIndex(x=>x.Name.ToLower() == cc.RuleName.ToLower()); if(indxResol>-1){ ls.AppendValues(isValid,cp.ProjectName,cp,cp.ProjectName,true); cntOfAdded++; } else { lcpDennied.Add(cp); } } else { ls.AppendValues(isValid,cp.ProjectName,cp,cp.ProjectName,true); cntOfAdded++; } } else { lcpDennied.Add(cp); } } //} } // pridam tie zakazane, ktore su vybrate na publish foreach (CombinePublish cp in lcpDennied){ if(cp.IsSelected){ ls.AppendValues(cp.IsSelected,cp.ProjectName,cp,cp.ProjectName,false); cntOfAdded++; } } if(cntOfAdded == 0){ MainClass.MainWindow.OutputConsole.WriteError(String.Format("Missing publish settings for {0}.\n",deviceName)); } bool showAll = false; tvList.ButtonReleaseEvent += delegate(object o, ButtonReleaseEventArgs args){ if (args.Event.Button == 3) { TreeSelection ts = tvList.Selection; Gtk.TreePath[] selRow = ts.GetSelectedRows(); if(selRow.Length<1){ TreeIter tiFirst= new TreeIter(); ls.GetIterFirst(out tiFirst); tvList.Selection.SelectIter(tiFirst); selRow = ts.GetSelectedRows(); } if(selRow.Length<1) return; Gtk.TreePath tp = selRow[0]; TreeIter ti = new TreeIter(); ls.GetIter(out ti,tp); CombinePublish combinePublish= (CombinePublish)ls.GetValue(ti,2); if(combinePublish!=null){ Menu popupMenu = new Menu(); if(!showAll){ MenuItem miShowDenied = new MenuItem( MainClass.Languages.Translate("show_denied" )); miShowDenied.Activated+= delegate(object sender, EventArgs e) { // odoberem zakazane, ktore sa zobrazuju kedze su zaceknute na publish List<TreeIter> lst= new List<TreeIter>(); ls.Foreach((model, path, iterr) => { bool cp =(bool) ls.GetValue(iterr,4); bool selected =(bool) ls.GetValue(iterr,0); if(!cp && selected){ lst.Add(iterr); } return false; }); foreach(TreeIter ti2 in lst){ TreeIter ti3 =ti2; ls.Remove(ref ti3); } // pridam zakazane if( (lcpDennied==null) || (lcpDennied.Count<1)) return; foreach (CombinePublish cp in lcpDennied){ ls.AppendValues(cp.IsSelected,cp.ProjectName,cp,cp.ProjectName,false); } showAll = true; }; popupMenu.Append(miShowDenied); } else { MenuItem miHideDenied = new MenuItem( MainClass.Languages.Translate("hide_denied" )); miHideDenied.Activated+= delegate(object sender, EventArgs e) { List<TreeIter> lst= new List<TreeIter>(); ls.Foreach((model, path, iterr) => { bool cp =(bool) ls.GetValue(iterr,4); bool selected =(bool) ls.GetValue(iterr,0); if(!cp && !selected){ lst.Add(iterr); } return false; }); foreach(TreeIter ti2 in lst){ TreeIter ti3 =ti2; ls.Remove(ref ti3); } showAll = false; }; popupMenu.Append(miHideDenied); } popupMenu.Append(new SeparatorMenuItem()); MenuItem miCheckAll = new MenuItem( MainClass.Languages.Translate("check_all" )); miCheckAll.Activated+= delegate(object sender, EventArgs e) { if((deviceTyp == (int)DeviceType.Windows)||(deviceTyp == (int)DeviceType.MacOs)){ if(!MainClass.LicencesSystem.CheckFunction("windowsandmac",this)){ return; } } int cnt = 0; ls.Foreach((model, path, iterr) => { CombinePublish cp =(CombinePublish) ls.GetValue(iterr,2); cp.IsSelected = true; ls.SetValue(iterr,0,true); cnt ++; return false; }); nl.SetLabel (String.Format("{0} ({1})",deviceName,cnt )); }; popupMenu.Append(miCheckAll); MenuItem miUnCheckAll = new MenuItem( MainClass.Languages.Translate("uncheck_all" )); miUnCheckAll.Activated+= delegate(object sender, EventArgs e) { ls.Foreach((model, path, iterr) => { CombinePublish cp =(CombinePublish) ls.GetValue(iterr,2); cp.IsSelected = false; ls.SetValue(iterr,0,false); return false; }); nl.SetLabel (String.Format("{0} ({1})",deviceName,0 )); }; popupMenu.Append(miUnCheckAll); popupMenu.Popup(); popupMenu.ShowAll(); } } }; tvList.Model = ls; if (!validDevice) tvList.Sensitive = false; sw.Add(tvList); notebook.AppendPage(sw, nl); } }