Пример #1
0
        public PublishDialogWizzard()
        {
            project           = MainClass.Workspace.ActualProject;
            this.TransientFor = MainClass.MainWindow;
            this.Build();

            ciDeviceTesting      = new DropDownButton.ComboItem(MainClass.Languages.Translate("device_testing"), 0);
            ciDeviceDistribution = new DropDownButton.ComboItem(MainClass.Languages.Translate("market_distribution"), 1);

            btnResetMatrix.Label = MainClass.Languages.Translate("reset_matrix");

            chbSignApp           = new CheckButton(MainClass.Languages.Translate("sign_app"));
            chbSignApp.Active    = MainClass.Workspace.SignApp;
            chbSignApp.Toggled  += new EventHandler(OnChbSignAppToggled);
            chbSignApp.Sensitive = true;            //MainClass.Settings.SignAllow;

            notebook1.ShowTabs   = false;
            notebook1.ShowBorder = false;
            notebook1.Page       = 0;

            Table tblHeader = new Table(1, 4, false);

            ddbTypPublish          = new DropDownRadioButton();
            ddbTypPublish.Changed += delegate(object sender, DropDownButton.ChangedEventArgs e)
            {
                if (e.Item != null)
                {
                    int selTyp = (int)e.Item;
                    if (selTyp == 0)
                    {
                        lblRemote.Visible    = true;
                        ddbTypRemote.Visible = true;
                        chbSignApp.Sensitive = false;
                    }
                    else
                    {
                        if (!MainClass.LicencesSystem.CheckFunction("marketdistribution", this))
                        {
                            ddbTypPublish.SelectItem(publishItems, ciDeviceTesting);
                            return;
                        }

                        lblRemote.Visible    = false;
                        ddbTypRemote.Visible = false;
                        chbSignApp.Sensitive = true;
                    }

                    MainClass.Workspace.ActualProject.TypPublish = selTyp;
                }
            };
            ddbTypPublish.WidthRequest = 175;
            ddbTypPublish.SetItemSet(publishItems);

            ddbTypRemote          = new DropDownRadioButton();
            ddbTypRemote.Changed += delegate(object sender, DropDownButton.ChangedEventArgs e)
            {
                if (e.Item != null)
                {
                    string ipAdress = (string)e.Item;
                    MainClass.Settings.RemoteIpAdress = ipAdress;
                }
            };

            ddbTypRemote.WidthRequest = 175;
            ddbTypRemote.SetItemSet(remoteItems);

            publishItems.Add(ciDeviceTesting);
            publishItems.Add(ciDeviceDistribution);

            ddbTypPublish.SelectItem(publishItems, ciDeviceTesting);

            /*if(MainClass.Workspace.ActualProject.TypPublish ==1)
             *      ddbTypPublish.SelectItem(publishItems,ciDeviceDistribution);
             * else
             *      ddbTypPublish.SelectItem(publishItems,ciDeviceTesting);*/


            DropDownButton.ComboItem addRemote0 = new DropDownButton.ComboItem(MainClass.Languages.Translate("remote_none"), "0");
            remoteItems.Add(addRemote0);


            bool          findSelect = false;
            List <string> listIp     = Moscrif.IDE.Tool.Network.GetIpAdress();

            foreach (string ip in listIp)
            {
                DropDownButton.ComboItem addIP = new DropDownButton.ComboItem(ip, ip);
                remoteItems.Add(addIP);

                /*if(ip== MainClass.Settings.RemoteIpAdress){
                 *      ddbTypRemote.SelectItem(remoteItems,addIP);
                 *      findSelect = true;
                 * }*/
            }
            if (!findSelect)
            {
                ddbTypRemote.SelectItem(remoteItems, addRemote0);;
            }


            tblHeader.Attach(new Label("Publish: "), 0, 1, 0, 1, AttachOptions.Fill, AttachOptions.Fill, 5, 0);
            tblHeader.Attach(ddbTypPublish, 1, 2, 0, 1, AttachOptions.Fill, AttachOptions.Fill, 0, 0);

            tblHeader.Attach(lblRemote, 2, 3, 0, 1, AttachOptions.Fill, AttachOptions.Fill, 5, 0);
            tblHeader.Attach(ddbTypRemote, 3, 4, 0, 1, AttachOptions.Fill, AttachOptions.Fill, 0, 0);

            this.vbox2.PackStart(tblHeader, false, false, 0);


            storeOutput = new ListStore(typeof(string), typeof(string), typeof(Gdk.Pixbuf), typeof(bool));

            nvOutput.Model = storeOutput;
            Gtk.CellRendererText collumnRenderer = new Gtk.CellRendererText();

            //nvOutput.AppendColumn ("", new Gtk.CellRendererPixbuf (), "pixbuf", 2);
            nvOutput.AppendColumn("", collumnRenderer, "text", 0);
            nvOutput.AppendColumn("", collumnRenderer, "text", 1);
            nvOutput.Columns[0].FixedWidth = 200;
            nvOutput.Columns[1].Expand     = true;

            //nvOutput.Columns[0].SetCellDataFunc(collumnRenderer, new Gtk.TreeCellDataFunc(RenderOutput));
            //nvOutput.Columns[1].SetCellDataFunc(collumnRenderer, new Gtk.TreeCellDataFunc(RenderOutput));

            this.Title = MainClass.Languages.Translate("publish_title", project.ProjectName);

            if (project.ProjectUserSetting.CombinePublish == null || project.ProjectUserSetting.CombinePublish.Count == 0)
            {
                project.GeneratePublishCombination();
            }

            if (project.DevicesSettings == null || project.DevicesSettings.Count == 0)
            {
                project.GenerateDevices();
            }

            foreach (Rule rl in MainClass.Settings.Platform.Rules)
            {
                if ((rl.Tag == -1) && !MainClass.Settings.ShowUnsupportedDevices)
                {
                    continue;
                }
                if ((rl.Tag == -2) && !MainClass.Settings.ShowDebugDevices)
                {
                    continue;
                }

                Device dvc = project.DevicesSettings.Find(x => x.TargetPlatformId == rl.Id);
                if (dvc == null)
                {
                    Console.WriteLine("generate device -{0}", rl.Id);
                    dvc = new Device();
                    dvc.TargetPlatformId     = rl.Id;
                    dvc.PublishPropertisMask = project.GeneratePublishPropertisMask(rl.Id);
                    project.DevicesSettings.Add(dvc);
                }
            }

            project.Save();
            notebook = new Notebook();
            GenerateNotebookPages();

            this.vbox2.PackStart(notebook, true, true, 0);         //PackEnd

            VBox vbox1 = new VBox();

            chbOpenOutputDirectory          = new CheckButton(MainClass.Languages.Translate("open_open_directory_after_publish"));
            chbOpenOutputDirectory.Toggled += new EventHandler(OnChbOpenOutputDirectoryToggled);

            chbIncludeAllResolution           = new CheckButton(MainClass.Languages.Translate("include_all_resolution"));
            chbIncludeAllResolution.Active    = project.IncludeAllResolution;
            chbIncludeAllResolution.Sensitive = false;
            chbIncludeAllResolution.Toggled  += delegate {
                project.IncludeAllResolution = chbIncludeAllResolution.Active;
            };

            vbox1.PackStart(chbIncludeAllResolution, false, false, 0);
            vbox3.PackEnd(chbOpenOutputDirectory, false, false, 0);

            chbDebugLog          = new Gtk.CheckButton(MainClass.Languages.Translate("debug_log_publish"));
            chbDebugLog.Active   = MainClass.Settings.LogPublish;
            chbDebugLog.Toggled += delegate {
                MainClass.Settings.LogPublish = chbDebugLog.Active;
            };

            vbox1.PackEnd(chbDebugLog, false, false, 0);

            this.vbox2.PackEnd(vbox1, false, false, 0);


            VBox hbox = new VBox();

            hbox.PackStart(chbSignApp, false, false, 0);

            this.vbox2.PackEnd(hbox, false, false, 0);

            this.ShowAll();

            int cpage = project.ProjectUserSetting.PublishPage;

            notebook.SwitchPage += delegate(object o, SwitchPageArgs args) {
                project.ProjectUserSetting.PublishPage = notebook.CurrentPage;

                NotebookLabel nl = (NotebookLabel)notebook.GetTabLabel(notebook.CurrentPageWidget);
                chbIncludeAllResolution.Sensitive = false;

                if (nl.Tag == null)
                {
                    return;
                }

                Device d = project.DevicesSettings.Find(x => (int)x.Devicetype == (int)nl.Tag);
                if (d != null)
                {
                    if (d.Includes != null)
                    {
                        if (d.Includes.Skin != null)
                        {
                            if (!String.IsNullOrEmpty(d.Includes.Skin.Name))
                            {
                                chbIncludeAllResolution.Sensitive = true;
                            }
                        }
                    }
                }
            };

            chbOpenOutputDirectory.Active = MainClass.Settings.OpenOutputAfterPublish;


            notebook.CurrentPage = cpage;
            btnNext.GrabFocus();
        }