예제 #1
0
    public static void UpdateField(string field, string text)
    {
        //adapted from
        //http://stackoverflow.com/a/2401873

        string tempfile = Path.GetTempFileName();

        LogB.Information("UpdateField, field: " + field + ", text: " + text);

        if (!File.Exists(UtilAll.GetConfigFileName()))
        {
            try {
                using (var writer = new StreamWriter(tempfile))
                {
                    writer.WriteLine(field + "=" + text);
                }
                File.Copy(tempfile, UtilAll.GetConfigFileName(), true);
            } catch {
                LogB.Warning("Cannot write at Config.UpdateField");
            }
        }
        else
        {
            try {
                using (var writer = new StreamWriter(tempfile))
                    using (var reader = new StreamReader(UtilAll.GetConfigFileName()))
                    {
                        while (!reader.EndOfStream)
                        {
                            string line = reader.ReadLine();
                            if (line != "" && line[0] != '#')
                            {
                                string [] parts = line.Split(new char[] { '=' });
                                if (parts.Length == 2 && parts[0] == field)
                                {
                                    line = field + "=" + text;
                                }
                            }

                            writer.WriteLine(line);
                        }
                    }
                File.Copy(tempfile, UtilAll.GetConfigFileName(), true);
            } catch {
                LogB.Warning("Cannot write at Config.UpdateField");
            }
        }
    }
예제 #2
0
    void on_button_import_configuration_clicked(object o, EventArgs args)
    {
        fc = new Gtk.FileChooserDialog(Catalog.GetString("Import configuration file"),
                                       preferences_win,
                                       FileChooserAction.Open,
                                       Catalog.GetString("Cancel"), ResponseType.Cancel,
                                       Catalog.GetString("Import"), ResponseType.Accept
                                       );

        fc.Filter = new FileFilter();
        //it can handle future archives like: chronojump_config_SOME_VENDOR.txt
        //and it will be copied to chronojump_config.txt
        fc.Filter.AddPattern("chronojump_config*.txt");

        bool success = false;

        if (fc.Run() == (int)ResponseType.Accept)
        {
            try {
                File.Copy(fc.Filename, UtilAll.GetConfigFileName(), true);
                LogB.Information("Imported configuration");

                //will launch configInit() from gui/chronojump.cs
                FakeButtonImported.Click();

                success = true;
            } catch {
                LogB.Warning("Catched! Configuration cannot be imported");
                new DialogMessage(Constants.MessageTypes.WARNING, Catalog.GetString("Error importing data."));
            }
        }
        //Don't forget to call Destroy() or the FileChooserDialog window won't get closed.
        fc.Destroy();

        if (success)
        {
            new DialogMessage(Constants.MessageTypes.INFO, Catalog.GetString("Successfully imported."));
        }
    }
예제 #3
0
    public void Read()
    {
        string contents = Util.ReadFile(UtilAll.GetConfigFileName(), false);

        if (contents != null && contents != "")
        {
            string line;
            using (StringReader reader = new StringReader(contents)) {
                do
                {
                    line = reader.ReadLine();

                    if (line == null)
                    {
                        break;
                    }
                    if (line == "" || line[0] == '#')
                    {
                        continue;
                    }

                    string [] parts = line.Split(new char[] { '=' });
                    if (parts.Length != 2)
                    {
                        continue;
                    }

                    if (parts[0] == "Maximized" && Util.StringToBool(parts[1]))
                    {
                        Maximized = true;
                    }
                    else if (parts[0] == "CustomButtons" && Util.StringToBool(parts[1]))
                    {
                        CustomButtons = true;
                    }
                    else if (parts[0] == "UseVideo" && !Util.StringToBool(parts[1]))
                    {
                        UseVideo = false;
                    }
                    else if (parts[0] == "AutodetectPort" && Enum.IsDefined(typeof(AutodetectPortEnum), parts[1]))
                    {
                        AutodetectPort = (AutodetectPortEnum)
                                         Enum.Parse(typeof(AutodetectPortEnum), parts[1]);
                    }
                    else if (parts[0] == "OnlyEncoderGravitatory" && Util.StringToBool(parts[1]))
                    {
                        OnlyEncoderGravitatory = true;
                    }
                    else if (parts[0] == "OnlyEncoderInertial" && Util.StringToBool(parts[1]))
                    {
                        OnlyEncoderInertial = true;
                    }
                    else if (parts[0] == "EncoderCaptureShowOnlyBars" && Util.StringToBool(parts[1]))
                    {
                        EncoderCaptureShowOnlyBars = true;
                    }
                    else if (parts[0] == "EncoderUpdateTreeViewWhileCapturing" && !Util.StringToBool(parts[1]))
                    {
                        EncoderUpdateTreeViewWhileCapturing = false;
                    }
                    else if (parts[0] == "PersonWinHide" && Util.StringToBool(parts[1]))
                    {
                        PersonWinHide = true;
                    }
                    else if (parts[0] == "EncoderAnalyzeHide" && Util.StringToBool(parts[1]))
                    {
                        EncoderAnalyzeHide = true;
                    }
                    else if (parts[0] == "SessionMode" && Enum.IsDefined(typeof(SessionModeEnum), parts[1]))
                    {
                        SessionMode = (SessionModeEnum)
                                      Enum.Parse(typeof(SessionModeEnum), parts[1]);
                    }
                    else if (parts[0] == "RunScriptOnExit" && parts[1] != "")
                    {
                        RunScriptOnExit = parts[1];
                    }
                } while(true);
            }
        }
    }
예제 #4
0
    public void Read()
    {
        string contents = Util.ReadFile(UtilAll.GetConfigFileName(), false);

        if (contents != null && contents != "")
        {
            string line;
            using (StringReader reader = new StringReader(contents)) {
                do
                {
                    line = reader.ReadLine();

                    if (line == null)
                    {
                        break;
                    }
                    if (line == "" || line[0] == '#')
                    {
                        continue;
                    }

                    string [] parts = line.Split(new char[] { '=' });
                    if (parts.Length != 2)
                    {
                        continue;
                    }

                    if (parts[0] == "Compujump" && Util.StringToBool(parts[1]))
                    {
                        Compujump = true;
                    }
                    else if (parts[0] == "CompujumpServerURL" && parts[1] != "")
                    {
                        CompujumpServerURL = parts[1];
                    }
                    else if (parts[0] == "CompujumpStationID" && parts[1] != "" && Util.IsNumber(parts[1], false))
                    {
                        CompujumpStationID = Convert.ToInt32(parts[1]);
                    }
                    else if (parts[0] == "CompujumpAdminID" && parts[1] != "" && Util.IsNumber(parts[1], false))
                    {
                        CompujumpAdminID = Convert.ToInt32(parts[1]);
                    }
                    else if (parts[0] == "CompujumpAdminEmail" && parts[1] != "")
                    {
                        CompujumpAdminEmail = parts[1];
                    }
                    else if (parts[0] == "CompujumpStationMode" && Enum.IsDefined(typeof(Constants.Menuitem_modes), parts[1]))
                    {
                        CompujumpStationMode = (Constants.Menuitem_modes)
                                               Enum.Parse(typeof(Constants.Menuitem_modes), parts[1]);
                    }
                    else if (parts[0] == "SessionMode" && Enum.IsDefined(typeof(SessionModeEnum), parts[1]))
                    {
                        SessionMode = (SessionModeEnum)
                                      Enum.Parse(typeof(SessionModeEnum), parts[1]);
                    }
                    else if (parts[0] == "PlaySoundsFromFile" && Util.StringToBool(parts[1]))
                    {
                        PlaySoundsFromFile = true;
                    }
                    else if (parts[0] == "Exhibition" && Util.StringToBool(parts[1]))
                    {
                        Exhibition = true;
                    }
                    else if (parts[0] == "ExhibitionStationType" && Enum.IsDefined(typeof(ExhibitionTest.testTypes), parts[1]))
                    {
                        ExhibitionStationType = (ExhibitionTest.testTypes)
                                                Enum.Parse(typeof(ExhibitionTest.testTypes), parts[1]);
                    }

                    /*
                     * else if(parts[0] == "ExhibitionServerURL" && parts[1] != "")
                     *      ExhibitionServerURL = parts[1];
                     * else if(parts[0] == "ExhibitionStationID" && parts[1] != "" && Util.IsNumber(parts[1], false))
                     *      ExhibitionStationID = Convert.ToInt32(parts[1]);
                     */
                } while(true);
            }
        }
    }