Exemple #1
0
        public CodeIssuePanelWidget(string mimeType)
        {
            this.mimeType = mimeType;
            Build();

            var col1 = treeviewInspections.AppendColumn("Title", new CellRendererText(), "markup", 0);

            col1.Expand = true;

            searchentryFilter.Ready          = true;
            searchentryFilter.Visible        = true;
            searchentryFilter.Entry.Changed += ApplyFilter;

            var comboRenderer = new CellRendererCombo();

            comboRenderer.Alignment = Pango.Alignment.Center;
            var col = treeviewInspections.AppendColumn("Severity", comboRenderer);

            col.Sizing   = TreeViewColumnSizing.GrowOnly;
            col.MinWidth = 100;
            col.Expand   = false;

            var comboBoxStore = new ListStore(typeof(string), typeof(Severity));

            comboBoxStore.AppendValues(GetDescription(Severity.None), Severity.None);
            comboBoxStore.AppendValues(GetDescription(Severity.Error), Severity.Error);
            comboBoxStore.AppendValues(GetDescription(Severity.Warning), Severity.Warning);
            comboBoxStore.AppendValues(GetDescription(Severity.Hint), Severity.Hint);
            comboBoxStore.AppendValues(GetDescription(Severity.Suggestion), Severity.Suggestion);
            comboRenderer.Model      = comboBoxStore;
            comboRenderer.Mode       = CellRendererMode.Activatable;
            comboRenderer.TextColumn = 0;

            comboRenderer.Editable = true;
            comboRenderer.HasEntry = false;

            comboRenderer.Edited += delegate(object o, Gtk.EditedArgs args) {
                Gtk.TreeIter iter;
                if (!treeStore.GetIterFromString(out iter, args.Path))
                {
                    return;
                }

                Gtk.TreeIter storeIter;
                if (!comboBoxStore.GetIterFirst(out storeIter))
                {
                    return;
                }
                do
                {
                    if ((string)comboBoxStore.GetValue(storeIter, 0) == args.NewText)
                    {
                        var provider = (CodeIssueProvider)treeStore.GetValue(iter, 1);
                        var severity = (Severity)comboBoxStore.GetValue(storeIter, 1);
                        severities[provider] = severity;
                        return;
                    }
                } while (comboBoxStore.IterNext(ref storeIter));
            };

            col.SetCellDataFunc(comboRenderer, delegate(Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) {
                var provider = (CodeIssueProvider)model.GetValue(iter, 1);
                if (provider == null)
                {
                    comboRenderer.Visible = false;
                    return;
                }
                var severity                = severities[provider];
                comboRenderer.Visible       = true;
                comboRenderer.Text          = GetDescription(severity);
                comboRenderer.BackgroundGdk = GetColor(severity);
            });
            treeviewInspections.HeadersVisible     = false;
            treeviewInspections.Model              = treeStore;
            treeviewInspections.Selection.Changed += HandleSelectionChanged;
            GetAllSeverities();
            FillInspectors(null);
        }
        protected void ShowContext()
        {
            var selected = Selection.GetSelectedRows();

            if (selected.Length < 1)
            {
                return;
            }

            Menu context = new Menu();

            MenuItem item = new MenuItem("Remove");

            item.Activated += (sender, e) =>
            {
                foreach (var p in selected)
                {
                    TreeIter iter;
                    if (Messages.GetIter(out iter, p))
                    {
                        Messages.Remove(ref iter);
                    }
                }
                Selection.UnselectAll();
            };
            context.Add(item);

            if (selected.Length == 1)
            {
                TreeIter iter;
                Messages.GetIter(out iter, selected[0]);
                var session = Messages.GetValue(iter, 0) as Session;
                if (session != null)
                {
                    item            = new MenuItem("Remove All " + session.Name);
                    item.Activated += (sender, e) =>
                    {
                        TreeIter delIter;
                        Messages.GetIterFirst(out delIter);

                        while (Messages.IterIsValid(delIter))
                        {
                            var delSession = Messages.GetValue(delIter, 0) as Session;
                            if (delSession != null && delSession.GetType() == session.GetType() && delSession.Name == session.Name)
                            {
                                Messages.Remove(ref delIter);
                            }
                            else
                            {
                                Messages.IterNext(ref delIter);
                            }
                        }
                    };
                    context.Add(item);

                    item            = new MenuItem("Remove and Filter Out All " + session.Name);
                    item.Activated += (sender, e) =>
                    {
                        TreeIter delIter;
                        Messages.GetIterFirst(out delIter);

                        FilterItem filterOut = Main.GetFilter(session);
                        if (filterOut != null)
                        {
                            filterOut.Enabled = false;
                        }
                        Main.RedrawFilters();

                        while (Messages.IterIsValid(delIter))
                        {
                            var delSession = Messages.GetValue(delIter, 0) as Session;
                            if (delSession != null && delSession.GetType() == session.GetType() && delSession.Name == session.Name)
                            {
                                Messages.Remove(ref delIter);
                            }
                            else
                            {
                                Messages.IterNext(ref delIter);
                            }
                        }
                    };
                    context.Add(item);


                    FilterItem filter = Main.GetFilter(session);
                    if (filter != null)
                    {
                        var citem = new CheckMenuItem("Receive " + session.Name);
                        citem.Active   = filter.Enabled;
                        citem.Toggled += (sender, e) =>
                        {
                            filter.Enabled = !filter.Enabled;
                            Main.RedrawFilters();
                        };
                        context.Add(citem);
                    }
                }
            }

            context.Add(new SeparatorMenuItem());

            item            = new MenuItem("Select All");
            item.Activated += (sender, e) =>
            {
                Selection.SelectAll();
            };
            context.Add(item);

            item            = new MenuItem("Deselect");
            item.Activated += (sender, e) =>
            {
                Selection.UnselectAll();
            };
            context.Add(item);

            context.Add(new SeparatorMenuItem());

            item            = new MenuItem("Copy");
            item.Activated += (sender, e) =>
            {
                System.Text.StringBuilder sb = new System.Text.StringBuilder();
                foreach (var p in selected)
                {
                    TreeIter iter;
                    if (Messages.GetIter(out iter, p))
                    {
                        var session = Messages.GetValue(iter, 0) as Session;
                        if (session != null)
                        {
                            sb.AppendLine(string.Join(" | ", session.Columns));
                        }
                    }

                    Gtk.Clipboard.Get(Gdk.Atom.Intern("CLIPBOARD", false)).Text = sb.ToString().TrimEnd();
                }
            };
            context.Add(item);

            item            = new MenuItem("Clear");
            item.Activated += (sender, e) =>
            {
                Selection.UnselectAll();
                Messages.Clear();
            };
            context.Add(item);

            context.ShowAll();
            context.Popup();
        }
Exemple #3
0
        private void InitKeyControl()
        {
            var UpFolderAction = new Action <TreeIter>(iter =>
            {
                if (TreeIter.Zero.Equals(iter))
                {
                    return;
                }

                TreeIter parent;
                packStore.IterParent(out parent, iter);
                RefreshFolderView(parent);
                currentFolder = parent;

                Packer.Item item          = packStore.GetValue(iter, 0) as Packer.Item;
                TreeIter selectedInFolder = FindInCurrentFolder(item);
                packTreeView.SelectAndFocus(selectedInFolder);
            });

            var DownFolderAction = new Action <TreeIter>(iter =>
            {
                if (TreeIter.Zero.Equals(iter))
                {
                    return;
                }

                RefreshFolderView(iter);
                currentFolder = iter;

                TreeIter selectedInFolder;
                folderStore.GetIterFirst(out selectedInFolder);
                packTreeView.SelectAndFocus(selectedInFolder);
            });

            packTreeView.RowActivated += (o, args) =>
            {
                TreeIter selectedInFolder;
                folderStore.GetIter(out selectedInFolder, args.Path);
                Packer.Item item = folderStore.GetValue(selectedInFolder, 2) as Packer.Item;
                if (!item.IsFolder)
                {
                    return;
                }

                if (item.IsRoot)
                {
                    UpFolderAction(currentFolder);
                }
                else
                {
                    DownFolderAction(FindInPack(item));
                }
            };

            packTreeView.AddEvents((int)(Gdk.EventMask.KeyPressMask));

            packTreeView.KeyReleaseEvent += (o, args) =>
            {
                if (args.Event.Key == Gdk.Key.BackSpace)
                {
                    UpFolderAction(currentFolder);
                }

                if (args.Event.Key == Gdk.Key.Delete)
                {
                    RemoveAction.Activate();
                }
            };
        }
Exemple #4
0
        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) {
                    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) {
                                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.Append(new SeparatorMenuItem());


                            MenuItem mi = new MenuItem(MainClass.Languages.Translate("publis_only_this", combinePublish.ProjectName.Replace("_", "__")));
                            mi.Activated += delegate(object sender, EventArgs e) {
                                List <CombinePublish> lst = new List <CombinePublish>();
                                lst.Add(combinePublish);
                                RunPublishTask(lst);
                                this.Respond(ResponseType.Ok);
                            };
                            popupMenu.Append(mi);

                            MenuItem miD = new MenuItem(MainClass.Languages.Translate("publis_this_device", deviceName));
                            miD.Activated += delegate(object sender, EventArgs e) {
                                RunPublishTask(lcp);
                                this.Respond(ResponseType.Ok);
                            };
                            popupMenu.Append(miD);

                            popupMenu.Popup();
                            popupMenu.ShowAll();
                        }
                    }
                };

                tvList.Model = ls;

                if (!validDevice)
                {
                    tvList.Sensitive = false;
                }

                sw.Add(tvList);
                notebook.AppendPage(sw, nl);
            }
        }
Exemple #5
0
        private void RecentTrades_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            var coll = sender as ICollection <PublicTrade>;
            var tmax = viewModel.TradesMaxItemCount;

            switch (e.Action)
            {
            case NotifyCollectionChangedAction.Add:
                Debug.Assert(e.NewItems.Count == 1);
                Debug.Assert(e.NewStartingIndex == 0);
                Debug.Print($"PublicTrades: Added {e.NewItems.Count} items.");
                Gtk.Application.Invoke(delegate
                {
                    if (count < tmax)
                    {
                        store.Append();
                        count += 1;
                    }
                    // [count-1] point to latest item! we need to copy [count-2] to [count-1].
                    TreeIter iter, slctIter = GetSelection();
                    for (int ind = count - 1; ind > 0; ind -= 1)
                    {
                        store.GetIterFromString(out iter, (ind - 1).ToString());
                        var value = store.GetValue(iter, 0);
                        store.GetIterFromString(out iter, ind.ToString());
                        store.SetValue(iter, 0, value);
                    }
                    store.GetIterFirst(out iter);
                    store.SetValue(iter, 0, e.NewItems[0]);
                    // try restore selection.
                    if (!slctIter.Equals(TreeIter.Zero))
                    {
                        if (store.IterNext(ref slctIter))
                        {
                            nodeview1.Selection.SelectIter(slctIter);
                        }
                        else
                        {
                            nodeview1.Selection.UnselectAll();
                        }
                    }
                });
                break;

            case NotifyCollectionChangedAction.Move:
                break;

            case NotifyCollectionChangedAction.Remove:
                Debug.Print($"PublicTrades: Removed {e.OldItems.Count} items.");
                //Gtk.Application.Invoke(delegate {
                //TreeIter iter;
                //                  store.GetIterFirst(out iter);
                //                  for (int i = 0; i < e.OldStartingIndex; ++i)
                //                      store.IterNext(ref iter);
                //                  for (int i = 0; i < e.OldItems.Count; ++i)
                //                  {
                //                      //store.Remove(ref iter);
                //                      store.IterNext(ref iter);
                //                  }
                ////nodeview1.ScrollToPoint(0, 0);

                //});
                break;

            case NotifyCollectionChangedAction.Replace:
                break;

            case NotifyCollectionChangedAction.Reset:
                Debug.Print($"PublicTrades: Reset. {coll.Count} items.");
                Gtk.Application.Invoke(delegate
                {
                    store.Clear();
                    count = 0;
                    foreach (var item in coll.ToList())
                    {
                        store.AppendValues(item);
                        count += 1;
                    }
                });
                break;
            }
        }
        public CodeIssuePanelWidget(string mimeType)
        {
            this.mimeType = mimeType;
            // ReSharper disable once DoNotCallOverridableMethodsInConstructor
            Build();

            // ensure selected row remains visible
            treeviewInspections.SizeAllocated += (o, args) => {
                TreeIter iter;
                if (treeviewInspections.Selection.GetSelected(out iter))
                {
                    var path = treeviewInspections.Model.GetPath(iter);
                    treeviewInspections.ScrollToCell(path, treeviewInspections.Columns[0], false, 0f, 0f);
                }
            };
            treeviewInspections.TooltipColumn = 2;
            treeviewInspections.HasTooltip    = true;

            var toggleRenderer = new CellRendererToggle();

            toggleRenderer.Toggled += delegate(object o, ToggledArgs args) {
                TreeIter iter;
                if (treeStore.GetIterFromString(out iter, args.Path))
                {
                    var provider = (BaseCodeIssueProvider)treeStore.GetValue(iter, 1);
                    enableState[provider] = !enableState[provider];
                }
            };

            var titleCol = new TreeViewColumn();

            treeviewInspections.AppendColumn(titleCol);
            titleCol.PackStart(toggleRenderer, false);
            titleCol.Sizing = TreeViewColumnSizing.Autosize;
            titleCol.SetCellDataFunc(toggleRenderer, delegate(TreeViewColumn treeColumn, CellRenderer cell, TreeModel model, TreeIter iter) {
                var provider = (BaseCodeIssueProvider)model.GetValue(iter, 1);
                if (provider == null)
                {
                    toggleRenderer.Visible = false;
                    return;
                }
                toggleRenderer.Visible = true;
                toggleRenderer.Active  = enableState[provider];
            });


            var cellRendererText = new CellRendererText {
                Ellipsize = Pango.EllipsizeMode.End
            };

            titleCol.PackStart(cellRendererText, true);
            titleCol.AddAttribute(cellRendererText, "markup", 0);
            titleCol.Expand = true;

            searchentryFilter.ForceFilterButtonVisible = true;
            searchentryFilter.RoundedShape             = true;
            searchentryFilter.HasFrame       = true;
            searchentryFilter.Ready          = true;
            searchentryFilter.Visible        = true;
            searchentryFilter.Entry.Changed += ApplyFilter;


            var comboRenderer = new CustomCellRenderer {
                Alignment = Pango.Alignment.Center
            };
            var col = treeviewInspections.AppendColumn("Severity", comboRenderer);

            col.Sizing   = TreeViewColumnSizing.GrowOnly;
            col.MinWidth = 100;
            col.Expand   = false;

            var comboBoxStore = new ListStore(typeof(string), typeof(Severity));

//			comboBoxStore.AppendValues (GetDescription (Severity.None), Severity.None);
            comboBoxStore.AppendValues(GetDescription(Severity.Error), Severity.Error);
            comboBoxStore.AppendValues(GetDescription(Severity.Warning), Severity.Warning);
            comboBoxStore.AppendValues(GetDescription(Severity.Hint), Severity.Hint);
            comboBoxStore.AppendValues(GetDescription(Severity.Suggestion), Severity.Suggestion);
            comboRenderer.Model      = comboBoxStore;
            comboRenderer.Mode       = CellRendererMode.Activatable;
            comboRenderer.TextColumn = 0;

            comboRenderer.Editable = true;
            comboRenderer.HasEntry = false;

            comboRenderer.Edited += delegate(object o, EditedArgs args) {
                TreeIter iter;
                if (!treeStore.GetIterFromString(out iter, args.Path))
                {
                    return;
                }

                TreeIter storeIter;
                if (!comboBoxStore.GetIterFirst(out storeIter))
                {
                    return;
                }
                do
                {
                    if ((string)comboBoxStore.GetValue(storeIter, 0) == args.NewText)
                    {
                        var provider = (BaseCodeIssueProvider)treeStore.GetValue(iter, 1);
                        var severity = (Severity)comboBoxStore.GetValue(storeIter, 1);
                        severities[provider] = severity;
                        return;
                    }
                } while (comboBoxStore.IterNext(ref storeIter));
            };

            col.SetCellDataFunc(comboRenderer, delegate(TreeViewColumn treeColumn, CellRenderer cell, TreeModel model, TreeIter iter) {
                var provider = (BaseCodeIssueProvider)model.GetValue(iter, 1);
                if (provider == null)
                {
                    comboRenderer.Visible = false;
                    return;
                }
                var severity          = severities[provider];
                comboRenderer.Visible = true;
                comboRenderer.Text    = GetDescription(severity);
                comboRenderer.Icon    = GetIcon(severity);
            });
            treeviewInspections.HeadersVisible = false;
            treeviewInspections.Model          = treeStore;
            GetAllSeverities();
            FillInspectors(null);
        }
        public void Apply()
        {
            rule.Name        = entryRuleName.Text;
            rule.NamingStyle = (NamingStyle)(1 + styleComboBox.Active);

            var prefix = entryPrefix.Text.Trim();

            if (string.IsNullOrEmpty(prefix))
            {
                rule.RequiredPrefixes = null;
            }
            else
            {
                rule.RequiredPrefixes = new [] { prefix };
            }

            var allowedPrefix = entryPrefixAllowed.Text.Trim();

            if (string.IsNullOrEmpty(allowedPrefix))
            {
                rule.AllowedPrefixes = null;
            }
            else
            {
                rule.AllowedPrefixes = allowedPrefix.Split(',', ';').Select(s => s.Trim()).ToArray();
            }

            var suffix = entrySuffix.Text.Trim();

            if (string.IsNullOrEmpty(suffix))
            {
                rule.RequiredSuffixes = null;
            }
            else
            {
                rule.RequiredSuffixes = new [] { suffix };
            }

            var      ae = AffectedEntity.None;
            TreeIter iter;

            if (entityStore.GetIterFirst(out iter))
            {
                do
                {
                    var entity  = (AffectedEntity)entityStore.GetValue(iter, 1);
                    var include = (bool)entityStore.GetValue(iter, 2);
                    if (include)
                    {
                        ae |= entity;
                    }
                } while (entityStore.IterNext(ref iter));
            }
            rule.AffectedEntity = ae;

            var mod = Modifiers.None;

            if (accessibiltyStore.GetIterFirst(out iter))
            {
                do
                {
                    var entity  = (Modifiers)accessibiltyStore.GetValue(iter, 1);
                    var include = (bool)accessibiltyStore.GetValue(iter, 2);
                    if (include)
                    {
                        mod |= entity;
                    }
                } while (accessibiltyStore.IterNext(ref iter));
            }
            rule.VisibilityMask         = mod;
            rule.IncludeStaticEntities  = checkbuttonStatic.Active;
            rule.IncludeInstanceMembers = checkbuttonInstanceMembers.Active;
        }
Exemple #8
0
    protected virtual void SaveFileButton(object sender, System.EventArgs e)
    {
        string   Filename = "";
        TreeIter iter;
        bool     save = false;

        if (!CatalogueParser.GetInstance().Locked || sender.Equals(this.saveAsAction))
        {
            FileChooserDialog FChooser = new FileChooserDialog("Filename to save",
                                                               this, FileChooserAction.Save, this);
            FChooser.AddButton("Save", ResponseType.Accept);
            FChooser.AddButton("Cancel", ResponseType.Cancel);
            FChooser.AddFilter(this.catalogueFilter);
            FChooser.DoOverwriteConfirmation = true;

            FChooser.SetCurrentFolder(CatalogueParser.GetInstance().DocumentsDir);

            FChooser.Response += delegate(object o, ResponseArgs args) {
                switch (args.ResponseId)
                {
                case ResponseType.Accept:
                    if (FChooser.Filename.Contains(".catalogue"))
                    {
                        Filename = FChooser.Filename;
                    }
                    else
                    {
                        Filename = FChooser.Filename + ".catalogue";
                    }

                    save = true;
                    break;

                case ResponseType.Cancel:
                    break;

                default:
                    break;
                }
            };

            FChooser.Run();
            FChooser.Destroy();
        }

        else
        {
            save     = true;
            Filename = CatalogueParser.GetInstance().OpenedDocumentPath;
        }

        if (save && (tModel.IterNChildren() > 0))
        {
            tModel.GetIterFirst(out iter);
            CatalogueParser Parser = CatalogueParser.GetInstance();

            Parser.SetCatalogueEntry(new CatalogueEntry(
                                         (int)tModel.GetValue(iter, (int)Columns.COL_ID),
                                         (string)tModel.GetValue(iter, (int)Columns.COL_TITLE),
                                         (int)tModel.GetValue(iter, (int)Columns.COL_PAGE),
                                         (bool)tModel.GetValue(iter, (int)Columns.COL_WORKS))
                                     );
            while (tModel.IterNext(ref iter))
            {
                Parser.SetCatalogueEntry(new CatalogueEntry(
                                             (int)tModel.GetValue(iter, (int)Columns.COL_ID),
                                             (string)tModel.GetValue(iter, (int)Columns.COL_TITLE),
                                             (int)tModel.GetValue(iter, (int)Columns.COL_PAGE),
                                             (bool)tModel.GetValue(iter, (int)Columns.COL_WORKS))
                                         );
            }

            Parser.SaveFileName(Filename);
            Title = "Catalogue - " + Parser.OpenedDocumentName;
            statusbar.Push((uint)Context.DEFAULT_CONTEXT, "Saved file " + Filename);
        }
    }
Exemple #9
0
        public CompilerOptionsPanelWidget(DotNetProject project)
        {
            this.Build();
            this.project = project;
            DotNetProjectConfiguration configuration      = (DotNetProjectConfiguration)project.GetConfiguration(IdeApp.Workspace.ActiveConfiguration);
            CSharpCompilerParameters   compilerParameters = (CSharpCompilerParameters)configuration.CompilationParameters;
            var csproject = (CSharpProject)project;

            compileTargetCombo.CompileTarget = configuration.CompileTarget;
            compileTargetCombo.Changed      += new EventHandler(OnTargetChanged);

            if (project.IsLibraryBasedProjectType)
            {
                //fixme: should we totally hide these?
                compileTargetCombo.Sensitive = false;
                mainClassEntry.Sensitive     = false;
            }
            else
            {
                classListStore                     = new ListStore(typeof(string));
                mainClassEntry.Model               = classListStore;
                mainClassEntry.TextColumn          = 0;
                ((Entry)mainClassEntry.Child).Text = csproject.MainClass ?? string.Empty;

                UpdateTarget();
            }

            // Load the codepage. If it matches any of the supported encodigs, use the encoding name
            string foundEncoding = null;

            foreach (TextEncoding e in TextEncoding.SupportedEncodings)
            {
                if (e.CodePage == -1)
                {
                    continue;
                }
                if (e.CodePage == csproject.CodePage)
                {
                    foundEncoding = e.Id;
                }
                codepageEntry.AppendText(e.Id);
            }
            if (foundEncoding != null)
            {
                codepageEntry.Entry.Text = foundEncoding;
            }
            else if (csproject.CodePage != 0)
            {
                codepageEntry.Entry.Text = csproject.CodePage.ToString();
            }

            iconEntry.Path                    = csproject.Win32Icon;
            iconEntry.DefaultPath             = project.BaseDirectory;
            allowUnsafeCodeCheckButton.Active = compilerParameters.UnsafeCode;
            noStdLibCheckButton.Active        = compilerParameters.NoStdLib;

            var langVerStore = new ListStore(typeof(string), typeof(LanguageVersion));

            langVerStore.AppendValues(GettextCatalog.GetString("Default"), LanguageVersion.Default);
            langVerStore.AppendValues("ISO-1", LanguageVersion.CSharp1);
            langVerStore.AppendValues("ISO-2", LanguageVersion.CSharp2);
            langVerStore.AppendValues(GettextCatalog.GetString("Version 3"), LanguageVersion.CSharp3);
            langVerStore.AppendValues(GettextCatalog.GetString("Version 4"), LanguageVersion.CSharp4);
            langVerStore.AppendValues(GettextCatalog.GetString("Version 5"), LanguageVersion.CSharp5);
            langVerStore.AppendValues(GettextCatalog.GetString("Version 6"), LanguageVersion.CSharp6);
            langVerStore.AppendValues(GettextCatalog.GetString("Version 7"), LanguageVersion.CSharp7);
            langVerStore.AppendValues(GettextCatalog.GetString("Version 7.1"), LanguageVersion.CSharp7_1);
            langVerStore.AppendValues(GettextCatalog.GetString("Latest"), LanguageVersion.Latest);
            langVerCombo.Model = langVerStore;

            TreeIter iter;

            if (langVerStore.GetIterFirst(out iter))
            {
                do
                {
                    var val = (LanguageVersion)(int)langVerStore.GetValue(iter, 1);
                    if (val == compilerParameters.LangVersion)
                    {
                        langVerCombo.SetActiveIter(iter);
                        break;
                    }
                } while (langVerStore.IterNext(ref iter));
            }

            SetupAccessibility();
        }
        public PdfExportDialog() : base("PdfExportDialog.ui", "pdfexportbox")
        {
            games_spinbutton.Value = 10;
            checkbox_logic.Active  = checkbox_calculation.Active = checkbox_verbal.Active = true;

            // Use defaults from Preferences
            switch ((GameDifficulty)Preferences.Get <int> (Preferences.DifficultyKey))
            {
            case GameDifficulty.Easy:
                rb_easy.Active = rb_easy.HasFocus = true;
                break;

            case GameDifficulty.Medium:
                rb_medium.Active = rb_medium.HasFocus = true;
                break;

            case GameDifficulty.Master:
                rb_master.Active = rb_master.HasFocus = true;
                break;
            }
            // File selection
            string def_file;

            def_file = System.IO.Path.Combine(
                Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
                // Translators: default file name used when exporting PDF files (keep the pdf extension please)
                Catalog.GetString("games.pdf"));

            file = new BrowseFile(hbox_file, def_file, true);

            FileFilter[] filters = new FileFilter [2];
            filters[0] = new FileFilter();
            filters[0].AddPattern("*.pdf");
            filters[0].Name = Catalog.GetString("PDF files");

            filters[1] = new FileFilter();
            filters[1].AddPattern("*.*");
            filters[1].Name = Catalog.GetString("All files");

            file.Filters = filters;

            ListStore    layout_store = new ListStore(typeof(string), typeof(int));             // DisplayName, index to array
            CellRenderer layout_cell  = new CellRendererText();

            layout_combo.Model = layout_store;
            layout_combo.PackStart(layout_cell, true);
            layout_combo.SetCellDataFunc(layout_cell, ComboBoxCellFunc);

            int [] per_side = PdfExporter.PagesPerSide;

            for (int i = 0; i < per_side.Length; i++)
            {
                layout_store.AppendValues(per_side[i].ToString(), per_side[i]);
            }

            // Default value
            TreeIter iter;
            bool     more = layout_store.GetIterFirst(out iter);

            while (more)
            {
                if ((int)layout_store.GetValue(iter, COLUMN_VALUE) == DEF_SIDEVALUE)
                {
                    layout_combo.SetActiveIter(iter);
                    break;
                }
                more = layout_store.IterNext(ref iter);
            }
        }
Exemple #11
0
    private void AutoConnectPorts()
    {
        ListStore autoConnectPortsList = AutoConnectPrtsModel.getModel();
        TreeIter  autocnnportiter;

        if (autoConnectPortsList.GetIterFirst(out autocnnportiter))
        {
            do
            {
                string    autocnnport = autoConnectPortsList.GetValue(autocnnportiter, 0).ToString();
                ListStore portsList   = PortsModel.getModel();
                TreeIter  iter;
                Boolean   portGetConnected = false;
                if (portsList.GetIterFirst(out iter))
                {
                    do
                    {
                        string port = portsList.GetValue(iter, 0).ToString();
                        if (port.Trim().Equals(autocnnport.Trim(), StringComparison.CurrentCultureIgnoreCase))
                        {
                            string   sport    = lblPuerto.Text.ToString();
                            int      baudRate = Convert.ToInt32(cmbBaudRate.ActiveText.ToString());
                            Parity   parity   = (Parity)Enum.Parse(typeof(Parity), cmbParity.ActiveText.ToString());
                            int      databits = Convert.ToInt32(cmbDatabits.ActiveText.ToString());
                            StopBits stopbits = (StopBits)Enum.Parse(typeof(StopBits), cmbStopbits.ActiveText.ToString());

                            CnnPort cnnPort;
                            if (!cnnPortList.TryGetValue(port, out cnnPort))
                            {
                                string messageResponse;
                                if (
                                    this.connectToPort(port,
                                                       baudRate,
                                                       parity,
                                                       databits,
                                                       stopbits,
                                                       new SerialDataReceivedEventHandler(sport_DataReceived),
                                                       new SerialErrorReceivedEventHandler(sport_ErrorReceived),
                                                       out messageResponse)
                                    )
                                {
                                    PortsModel.editItem(iter, new Gdk.Pixbuf(Directory.GetCurrentDirectory() + @"/Assets/Images/on.png"), "Conectado");
                                    BitacoraModel.addItem("Auto abrir puerto", string.Format("Puerto {0}", port.ToString()));
                                }
                                else
                                {
                                    PortsModel.editItem(iter, new Gdk.Pixbuf(Directory.GetCurrentDirectory() + @"/Assets/Images/err.png"), "Error al intentar conectar");
                                    BitacoraModel.addItem("Auto abrir puerto", string.Format("Puerto {0}", port.ToString()), string.Format("Error al intentar conectar [ {0} ]", messageResponse), "ERROR");
                                }
                            }
                            cnnPort          = null;
                            portGetConnected = true;
                        }
                    } while (portsList.IterNext(ref iter));
                }

                if (!portGetConnected)
                {
                    BitacoraModel.addItem("Auto abrir puerto", string.Format("Puerto {0}", autocnnport), string.Format("No se encontró el puerto disponible"), "ERROR");
                }
            } while(autoConnectPortsList.IterNext(ref autocnnportiter));
        }
    }
Exemple #12
0
        private TextCleaner(Builder builder) : base(builder.GetObject("TextCleaner").Handle)
        {
            builder.Autoconnect(this);

            operationFactory = new OperationFactory(Operations);

            processor = new FullTextProcessor();
            currentOp = new Nop();

            DeleteEvent += Window_DeleteEvent;

            var fira = Pango.FontDescription.FromString("Fira Code Regular 11");

            textMain.ModifyFont(fira);
            textResult.ModifyFont(fira);

            textMain.Buffer.Changed += (object sender, EventArgs e) => ProcessText();

            operation.Changed += (object sender, EventArgs e) => {
                if (operation.Active < 0)
                {
                    return;
                }

                currentOp = Operations[operation.Active];
                string[] argNames = currentOp.ArgNames;

                if (argNames.Length >= 1)
                {
                    textArgument1.IsEditable = true;
                    labelArgument1.Text      = argNames[0];
                    textArgument1.Show();
                    labelArgument1.Show();
                }
                else
                {
                    textArgument1.IsEditable = false;
                    textArgument1.Hide();
                    labelArgument1.Hide();
                }

                if (argNames.Length >= 2)
                {
                    textArgument2.IsEditable = true;
                    labelArgument2.Text      = argNames[1];
                    textArgument2.Show();
                    labelArgument2.Show();
                }
                else
                {
                    textArgument2.IsEditable = false;
                    textArgument2.Hide();
                    labelArgument2.Hide();
                }

                ProcessText();
            };

            textArgument1.Changed += (object sender, EventArgs e) => ProcessText();
            textArgument2.Changed += (object sender, EventArgs e) => ProcessText();

            radioLines.Clicked += (object sender, EventArgs e) => {
                btnCopy.Sensitive = true;
                processor         = new LineProcessor();
                ProcessText();
            };

            radioFullText.Clicked += (object sender, EventArgs e) => {
                btnCopy.Sensitive = true;
                processor         = new FullTextProcessor();
                ProcessText();
            };

            radioTesting.Clicked += (object sender, EventArgs e) => {
                btnCopy.Sensitive = false;
                TreeIter iter;
                if (!listWorkspace.GetIterFirst(out iter))
                {
                    return;
                }

                var list = new List <CommandData>();
                do
                {
                    if (treeOperations.Selection.IterIsSelected(iter))
                    {
                        CommandData data = (CommandData)listWorkspace.GetValue(iter, 0);
                        list.Add(data);
                    }
                } while (listWorkspace.IterNext(ref iter));

                processor = new ProcessorList(operationFactory, list.ToArray());

                ProcessText();
            };

            btnCopy.Clicked += (sender, args) => {
                string processorName = "";
                if (radioFullText.Active)
                {
                    processorName = "full";
                }
                else if (radioLines.Active)
                {
                    processorName = "line";
                }

                string opName = currentOp.Name;
                string arg1   = textArgument1.Text;
                string arg2   = textArgument2.Text;

                listWorkspace.AppendValues(
                    CommandData.CreateInstance(
                        processorName,
                        opName,
                        operation.Active,
                        arg1,
                        arg2
                        )
                    );
            };

            treeOperations.Selection.Changed += (sender, args) => {
                if (radioTesting.Active)
                {
                    btnCopy.Sensitive = false;
                    TreeIter iter;
                    if (!listWorkspace.GetIterFirst(out iter))
                    {
                        return;
                    }

                    var list = new List <CommandData>();
                    do
                    {
                        if (treeOperations.Selection.IterIsSelected(iter))
                        {
                            CommandData data = (CommandData)listWorkspace.GetValue(iter, 0);
                            list.Add(data);
                        }
                    } while (listWorkspace.IterNext(ref iter));

                    processor = new ProcessorList(operationFactory, list.ToArray());
                    ProcessText();
                }
            };

            for (int i = 0; i < Operations.Length; i++)
            {
                var op = Operations[i];
                listOperations.AppendValues(i, op.Name);
            }

            operation.IdColumn        = 0;
            operation.EntryTextColumn = 1;
            operation.Model           = listOperations;

            var em = new TextTag("highlight")
            {
                Background = "#ff0"
            };

            textMain.Buffer.TagTable.Add(em);

            cellRendererName.Editable = false;
            columnName.SetCellDataFunc(cellRendererName, RenderCommandName);

            listWorkspace              = new ListStore(typeof(CommandData));
            treeOperations.Model       = listWorkspace;
            treeOperations.Reorderable = true;

            treeOperations.Selection.Mode = SelectionMode.Multiple;

            cellRendererName.Sensitive = true;
            treeOperations.Sensitive   = true;

            FillFromClipboard();
        }
        public CompilerOptionsPanelWidget(DotNetProject project)
        {
            this.Build();
            this.project = project;
            DotNetProjectConfiguration configuration      = (DotNetProjectConfiguration)project.GetConfiguration(IdeApp.Workspace.ActiveConfiguration);
            CSharpCompilerParameters   compilerParameters = (CSharpCompilerParameters)configuration.CompilationParameters;
            var csproject = (CSharpProject)project;

            compileTargetCombo.CompileTarget = configuration.CompileTarget;
            compileTargetCombo.Changed      += new EventHandler(OnTargetChanged);

            if (project.IsLibraryBasedProjectType)
            {
                //fixme: should we totally hide these?
                compileTargetCombo.Sensitive = false;
                mainClassEntry.Sensitive     = false;
            }
            else
            {
                classListStore                     = new ListStore(typeof(string));
                mainClassEntry.Model               = classListStore;
                mainClassEntry.TextColumn          = 0;
                ((Entry)mainClassEntry.Child).Text = csproject.MainClass ?? string.Empty;

                UpdateTarget();
            }

            // Load the codepage. If it matches any of the supported encodigs, use the encoding name
            string foundEncoding = null;

            foreach (TextEncoding e in TextEncoding.SupportedEncodings)
            {
                if (e.CodePage == -1)
                {
                    continue;
                }
                if (e.CodePage == csproject.CodePage)
                {
                    foundEncoding = e.Id;
                }
                codepageEntry.AppendText(e.Id);
            }
            if (foundEncoding != null)
            {
                codepageEntry.Entry.Text = foundEncoding;
            }
            else if (csproject.CodePage != 0)
            {
                codepageEntry.Entry.Text = csproject.CodePage.ToString();
            }

            iconEntry.Path                    = csproject.Win32Icon;
            iconEntry.DefaultPath             = project.BaseDirectory;
            allowUnsafeCodeCheckButton.Active = compilerParameters.UnsafeCode;
            noStdLibCheckButton.Active        = compilerParameters.NoStdLib;
            langVersionWarningIcon.Visible    = false;

            var             langVerStore = new ListStore(typeof(string), typeof(LanguageVersion), typeof(bool));
            var             langVersions = CSharpLanguageVersionHelper.GetKnownLanguageVersions();
            string          badVersion   = null;
            LanguageVersion?langVersion  = null;

            try {
                langVersion = compilerParameters.LangVersion;
            } catch (Exception) {
                badVersion = configuration.Properties.GetProperty("LangVersion").Value;
            }

            foreach (var(text, version) in langVersions)
            {
                if (unsupportedLanguageVersions.Contains(version))
                {
                    if (langVersion == version)
                    {
                        if (badVersion == null)
                        {
                            badVersion = text;
                        }
                    }
                    else
                    {
                        // Otherwise if it's an unsupported language but it's not the current project's
                        // version then it must be an unsupported version of Mono. Let's not add that to
                        // the list store.
                    }
                }
                else
                {
                    langVerStore.AppendValues(text, version, false);
                }
            }

            langVerCombo.Model = langVerStore;

            if (badVersion != null)
            {
                var badIter = langVerStore.AppendValues(GettextCatalog.GetString("{0} (Unknown Version)", badVersion), LanguageVersion.Default, true);
                langVerCombo.SetActiveIter(badIter);
                langVersionWarningIcon.Visible = true;
            }
            else
            {
                TreeIter iter;
                if (langVerStore.GetIterFirst(out iter))
                {
                    do
                    {
                        var val = (LanguageVersion)(int)langVerStore.GetValue(iter, 1);
                        if (val == compilerParameters.LangVersion)
                        {
                            langVerCombo.SetActiveIter(iter);
                            break;
                        }
                    } while (langVerStore.IterNext(ref iter));
                }
            }

            SetupAccessibility();
        }
Exemple #14
0
        /*
         * drive refreshing is implemented asynchronously,
         * because this operation may take a few seconds on windows systems.
         */
        private void RefreshListAsync()
        {
            //btnOk.Sensitive = false;

            if (CurrentPlatform.IsWin32)
            {
                ListStore store = new ListStore(typeof(string));
                store.AppendValues(S._("Waiting for drives..."));
                SetColumns(tvDrives, true);
                tvDrives.Model = store;
                /*ColumnsAutosize();*/
            }

            new Thread(
                delegate() {
                ListStore store       = new ListStore(typeof(Pixbuf), typeof(string), typeof(string), typeof(string), /*not visible - driveinfo data*/ typeof(object));
                DriveInfo[] drives    = DriveInfo.GetDrives(true);                      // list ready drives only
                TreeIter selectedIter = TreeIter.Zero;

                foreach (DriveInfo d in drives)
                {
                    if (EXCLUDE_ROOT_FS && (d.IsMounted && d.RootPath == "/"))
                    {
                        continue;
                    }

                    //string stockID = Util.GetDriveStockIconID(d);
                    //Pixbuf icon = this.RenderIcon(stockID, IconSize.Dialog, string.Empty);
                    Pixbuf icon = RenderIcon(Icons.IconUtils.GetDriveIcon(d), IconSize.Dialog);

                    string drive = string.IsNullOrEmpty(d.Device) ? S._("Unknown") : d.Device;
                    string label = GetLabel(d);
                    string size  = Util.GetSizeStr(d.TotalSize);

                    TreeIter iter = store.AppendValues(icon, drive, label, size, d);

                    // preselect the first cdrom drive found
                    if ((selectedIter.Stamp == TreeIter.Zero.Stamp) && d.DriveType == DriveType.CDRom)
                    {
                        selectedIter = iter;
                    }
                }

                // if no cdrom drive was selected, select first drive
                if (selectedIter.Stamp == TreeIter.Zero.Stamp)
                {
                    store.GetIterFirst(out selectedIter);
                }

                if (!isDestroyed)
                {
                    // only access gui components from the gui thread
                    Application.Invoke(delegate {
                        SetColumns(tvDrives, false);
                        tvDrives.Model = store;
                        /*ColumnsAutosize();*/

                        // select selectedIter
                        tvDrives.Selection.SelectIter(selectedIter);

                        //btnOk.Sensitive = true;
                    });
                }
            }).Start();
        }