示例#1
0
        public static Diary FromString(String str)
        {
            Diary result;

            if (str[0] != '<')
            {
                result = new Diary();
                result.FromStringv1d0(str);
            }
            else
            {
                using (StringReader sr = new StringReader(str))
                {
                    XmlSerializer xs = new XmlSerializer(typeof(Diary));
                    result = (Diary)xs.Deserialize(new StringReader(str));
                }
            }

            result.UpdateRecords();

            return(result);
        }
示例#2
0
        public void LoadSettings()
        {
            //string directory = Storage.readString("Directory");
            Settings.Settings.Load();
            Rectangle winRec        = Settings.Settings.SettingsHolder.MainWindowPos;
            Screen    scr           = Screen.FromRectangle(winRec);
            Rectangle monitorBounds = scr.Bounds;

            Diary newDiary = null;

            if (monitorBounds.IntersectsWith(winRec) && winRec.Width > 100 && winRec.Height > 100)
            {
                this.Bounds = winRec;
            }

            //Should be done after setting correct width of the window
            float[] columnsWidth = Settings.Settings.SettingsHolder.ColumnsWidths;
            if (columnsWidth != null && columnsWidth.Length == gridHistory.ColumnCount)
            {
                for (int col = 0; col < gridHistory.ColumnCount; col++)
                {
                    if (columnsWidth[col] > 0)
                    {
                        gridHistory.Columns[col].FillWeight = columnsWidth[col];
                    }
                }
            }
            List <IncomeTemplatesHolder.Template> incomeTemplates = Settings.Settings.SettingsHolder.incomeTemplates();

            templatesPanel.Controls.Clear();
            ToolTip ttip = new ToolTip();

            for (int i = 0; i < incomeTemplates.Count; i++)
            {
                Button btn = new Button();
                btn.Text     = incomeTemplates[i].m_name.Replace(" ", " ");
                btn.Tag      = i;
                btn.Width    = 100;
                btn.MouseUp += new MouseEventHandler(TemplateButtonClick);
                ttip.SetToolTip(btn, "Klikněte pravým tlačítkem pro smazání " + btn.Text);
                templatesPanel.Controls.Add(btn);
            }


            do
            {
                /*  directory = "";
                 *
                 * try
                 * {
                 *    XmlReaderSettings settings = new XmlReaderSettings();
                 *    using (XmlReader reader = XmlReader.Create(settingsFile, settings))
                 *    {
                 *        reader.ReadStartElement("DiarySettings");
                 *        directory = reader.ReadElementString("Directory");
                 *        reader.ReadEndElement();
                 *    }
                 * }
                 * catch { }*/

                if (Settings.Settings.SettingsHolder.DiaryDirectory == "")
                {
                    initFailureForm fform = new initFailureForm();
                    fform.ShowDialog();
                    if (fform.Result == initFailureForm.InitFailureResults.Cancel)
                    {
                        Application.Exit();    //todo lepeji ukoncit!!
                        return;
                    }
                    else if (fform.Result == initFailureForm.InitFailureResults.Open)
                    {
                        OpenFileDialog dlg = new OpenFileDialog();
                        dlg.InitialDirectory = Settings.Settings.SettingsHolder.DiaryDirectory; //todo
                        dlg.Filter           = "Deníky (*.pkl)|*.pkl";
                        if (dlg.ShowDialog() == DialogResult.OK)
                        {
                            Settings.Settings.SettingsHolder.DiaryDirectory = dlg.FileName;
                        }
                    }
                    else
                    {
                        tryCreateNewDiary();
                    }
                }
                try
                {
                    newDiary = Diary.Load(Settings.Settings.SettingsHolder.DiaryDirectory);
                }
                catch
                {
                    MessageBox.Show("Zadaný deník se nepodařilo otevřít.", "Chyba");
                    Settings.Settings.SettingsHolder.DiaryDirectory = "";
                }
            } while (Settings.Settings.SettingsHolder.DiaryDirectory == "");

            m_mainDiary.Clone(newDiary);
            EnsureRecordVisibility(m_mainDiary.RecordsCount - 1);
        }