Пример #1
0
        public void ShowAccountForm()
        {
            Reset ();

                Header       = "Welcome to SparkleShare!";
                Description  = "Before we can create a SparkleShare folder on this " +
                               "computer, we need some information from you.";

                UserInfoForm = new NSForm (new RectangleF (250, 115, 350, 64));
                UserInfoForm.AddEntry ("Full Name:");
                UserInfoForm.AddEntry ("Email Address:");
                UserInfoForm.CellSize = new SizeF (280, 22);
                UserInfoForm.IntercellSpacing = new SizeF (4, 4);

                string full_name  = new UnixUserInfo (UnixEnvironment.UserName).RealName;
                                if (string.IsNullOrEmpty (full_name))
                    full_name = "";

                UserInfoForm.Cells [0].StringValue = full_name.TrimEnd (",".ToCharArray());;
                UserInfoForm.Cells [1].StringValue = SparkleShare.Controller.UserEmail;

                ContinueButton = new NSButton () {
                    Title    = "Continue",
                    Enabled = false
                };

                ContinueButton.Activated += delegate {

                    SparkleShare.Controller.UserName  = UserInfoForm.Cells [0].StringValue.Trim ();
                    SparkleShare.Controller.UserEmail = UserInfoForm.Cells [1].StringValue.Trim ();
                    SparkleShare.Controller.GenerateKeyPair ();
                    SparkleShare.Controller.FirstRun = false;

                    InvokeOnMainThread (delegate {
                        ShowServerForm ();
                    });

                };

                // TODO: Ugly hack, do properly with events
                Timer timer = new Timer () {
                    Interval = 50
                };

                timer.Elapsed += delegate {

                    InvokeOnMainThread (delegate {

                        bool name_is_correct =
                            !UserInfoForm.Cells [0].StringValue.Trim ().Equals ("");

                        bool email_is_correct = SparkleShare.Controller.IsValidEmail
                            (UserInfoForm.Cells [1].StringValue.Trim ());

                        ContinueButton.Enabled = (name_is_correct && email_is_correct);

                    });

                };

                timer.Start ();

                ContentView.AddSubview (UserInfoForm);
                Buttons.Add (ContinueButton);

            ShowAll ();
        }
Пример #2
0
        public void ShowAccountForm()
        {
            Reset ();

            VBox layout_vertical = new VBox (false, 0);

                Deletable = false;

                Label header = new Label ("<span size='large'><b>" +
                                        _("Welcome to SparkleShare!") +
                                          "</b></span>") {
                    UseMarkup = true,
                    Xalign = 0
                };

                Label information = new Label (_("Before we can create a SparkleShare folder on this " +
                                                 "computer, we need a few bits of information from you.")) {
                    Xalign = 0,
                    Wrap   = true
                };

                Table table = new Table (4, 2, true) {
                    RowSpacing = 6
                };

                    string full_name  = new UnixUserInfo (UnixEnvironment.UserName).RealName;
                                        if (string.IsNullOrEmpty (full_name))
                        full_name = "";

                    Label name_label = new Label ("<b>" + _("Full Name:") + "</b>") {
                        UseMarkup = true,
                        Xalign    = 0
                    };

                    NameEntry = new Entry (full_name.TrimEnd (",".ToCharArray()));
                    NameEntry.Changed += delegate {
                        CheckAccountForm ();
                    };

                    EmailEntry = new Entry (SparkleShare.Controller.UserEmail);
                    EmailEntry.Changed += delegate {
                        CheckAccountForm ();
                    };

                    Label email_label = new Label ("<b>" + _("Email:") + "</b>") {
                        UseMarkup = true,
                        Xalign    = 0
                    };

                table.Attach (name_label, 0, 1, 0, 1);
                table.Attach (NameEntry, 1, 2, 0, 1);
                table.Attach (email_label, 0, 1, 1, 2);
                table.Attach (EmailEntry, 1, 2, 1, 2);

                    NextButton = new Button (_("Next")) {
                        Sensitive = false
                    };

                    NextButton.Clicked += delegate (object o, EventArgs args) {

                        NextButton.Remove (NextButton.Child);
                        NextButton.Add (new Label (_("Configuring…")));

                        NextButton.Sensitive = false;
                        table.Sensitive       = false;

                        NextButton.ShowAll ();

                        SparkleShare.Controller.UserName  = NameEntry.Text;
                        SparkleShare.Controller.UserEmail = EmailEntry.Text;

                        SparkleShare.Controller.GenerateKeyPair ();
                        SparkleShare.Controller.AddKey ();

                        SparkleShare.Controller.FirstRun = false;

                        Deletable = true;
                        ShowServerForm ();

                    };

                AddButton (NextButton);

            layout_vertical.PackStart (header, false, false, 0);
            layout_vertical.PackStart (information, false, false, 21);
            layout_vertical.PackStart (new Label (""), false, false, 0);
            layout_vertical.PackStart (table, false, false, 0);

            Add (layout_vertical);

            CheckAccountForm ();

            ShowAll ();
        }
Пример #3
0
        private void CreateInitialConfig()
        {
            string user_name = "Unknown";

            if (SparkleBackend.Platform == PlatformID.Unix ||
                SparkleBackend.Platform == PlatformID.MacOSX) {

                user_name = new UnixUserInfo (UnixEnvironment.UserName).RealName;
                if (string.IsNullOrEmpty (user_name))
                    user_name = UnixEnvironment.UserName;
                else
                    user_name = user_name.TrimEnd (",".ToCharArray());

            } else {
                user_name = Environment.UserName;
            }

            if (string.IsNullOrEmpty (user_name))
                user_name = "Unknown";

            TextWriter writer = new StreamWriter (Path);
            string n          = Environment.NewLine;

            writer.Write ("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" + n +
                          "<sparkleshare>" + n +
                          "  <user>" + n +
                          "    <name>" + user_name + "</name>" + n +
                          "    <email>Unknown</email>" + n +
                          "  </user>" + n +
                          "</sparkleshare>");
            writer.Close ();

            SparkleHelpers.DebugInfo ("Config", "Created \"" + Path + "\"");
        }