コード例 #1
0
        public List <RemoteFileRef> GetLocalFileDatabase()
        {
            List <RemoteFileRef> list = new List <RemoteFileRef>();

            foreach (MNBookHeader book in Books)
            {
                RemoteFileRef bookFile = new RemoteFileRef();
                bookFile.Text     = book.BookTitle;
                bookFile.FileName = Path.GetFileName(book.FilePath);
                bookFile.LastTime = book.LastTimeSave;
                bookFile.Selected = true;
                bookFile.Local    = true;

                foreach (MNBookLanguage lang in book.Languages)
                {
                    RemoteFileRef langw = new RemoteFileRef();
                    langw.Local    = true;
                    langw.Selected = true;
                    langw.Text     = lang.LanguageName;
                    langw.LastTime = lang.LastTimeSave;
                    langw.FileName = Path.GetFileName(lang.FilePath);
                    bookFile.Subs.Add(langw);
                }

                list.Add(bookFile);
            }

            return(list);
        }
コード例 #2
0
        private void buttonApply_Click(object sender, EventArgs e)
        {
            FilesToDelete.Clear();
            FilesToDownload.Clear();

            foreach (object obj in listBox1.Items)
            {
                if (obj is SMVItem)
                {
                    SMVItem item = obj as SMVItem;
                    if (item.Selected)
                    {
                        RemoteFileRef rf = item.File;
                        if (rf.NewVersionAvailable)
                        {
                            FilesToDownload.Add(rf.FileName);
                            FilesToDownload.Add(Path.GetFileNameWithoutExtension(rf.FileName) + ".smd");
                            FilesToDownload.Add(Path.GetFileNameWithoutExtension(rf.FileName) + ".sme");
                        }
                        foreach (RemoteFileRef rfa in rf.Subs)
                        {
                            if (rf.NewVersionAvailable)
                            {
                                FilesToDownload.Add(rf.FileName);
                            }
                        }
                    }
                }
                else if (obj is RemoteFileRef)
                {
                    RemoteFileRef rf = obj as RemoteFileRef;
                    if (rf.Selected == false && rf.Local == true)
                    {
                        FilesToDelete.Add(rf.FileName);
                    }
                    else if (rf.Local == false && rf.Selected == true)
                    {
                        FilesToDownload.Add(rf.FileName);
                        FilesToDownload.Add(Path.GetFileNameWithoutExtension(rf.FileName) + ".smd");
                        FilesToDownload.Add(Path.GetFileNameWithoutExtension(rf.FileName) + ".sme");
                        foreach (RemoteFileRef subFile in rf.Subs)
                        {
                            if (subFile.Selected && !subFile.Local)
                            {
                                FilesToDownload.Add(subFile.FileName);
                            }
                            else if (subFile.Local && !subFile.Selected)
                            {
                                FilesToDelete.Add(subFile.FileName);
                            }
                        }
                    }
                }
            }

            if (OnApplyChanges != null)
            {
                OnApplyChanges(this, e);
            }
        }
コード例 #3
0
ファイル: SelectLanguageView.cs プロジェクト: gopa810/Rambha
        private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
        {
            Font font = ChooseFont;
            int  off  = (int)font.SizeInPoints / 2;

            if ((e.State & DrawItemState.Selected) != 0)
            {
                e.Graphics.FillRectangle(Brushes.LightBlue, e.Bounds);
            }
            else
            {
                e.Graphics.FillRectangle(SystemBrushes.Window, e.Bounds);
            }

            if (e.Index >= 0 && e.Index < listBox1.Items.Count)
            {
                RemoteFileRef rf = listBox1.Items[e.Index] as RemoteFileRef;
                if (rf.Local == false)
                {
                    e.Graphics.DrawString(string.Format("{0} (Internet)", rf.Text), font, Brushes.Black, off, off + e.Bounds.Top);
                }
                else
                {
                    e.Graphics.DrawString(rf.Text, font, Brushes.Black, off, off + e.Bounds.Top);
                }
            }
        }
コード例 #4
0
        public static List <RemoteFileRef> StringToDB(string str)
        {
            List <RemoteFileRef> list = new List <RemoteFileRef>();

            RemoteFileRef currBook = null;
            RemoteFileRef currLang = null;

            foreach (string s in str.Split('\n', '\r'))
            {
                if (s.StartsWith("BOOK:"))
                {
                    currBook = new RemoteFileRef();
                    list.Add(currBook);
                    currBook.Text = s.Substring(5);
                }
                else if (s.StartsWith("LANG:"))
                {
                    currLang = new RemoteFileRef();
                    if (currBook.Subs == null)
                    {
                        currBook.Subs = new List <RemoteFileRef>();
                    }
                    currBook.Subs.Add(currLang);
                    currLang.Text = s.Substring(5);
                }
                else if (s.StartsWith("BOOKFILE:"))
                {
                    if (currBook != null)
                    {
                        currBook.FileName = s.Substring(9);
                    }
                }
                else if (s.StartsWith("LANGFILE:"))
                {
                    if (currLang != null)
                    {
                        currLang.FileName = s.Substring(9);
                    }
                }
                else if (s.StartsWith("BOOKTIME:"))
                {
                    if (currBook != null)
                    {
                        currBook.LastTime = s.Substring(9);
                    }
                }
                else if (s.StartsWith("LANGTIME:"))
                {
                    if (currLang != null)
                    {
                        currLang.LastTime = s.Substring(9);
                    }
                }
            }

            return(list);
        }
コード例 #5
0
        public static SMVItem MakeEntry(string t, RemoteFileRef b)
        {
            SMVItem sm = new SMVItem();

            sm.Text     = t;
            sm.IsHeader = false;
            sm.File     = b;
            return(sm);
        }
コード例 #6
0
ファイル: SelectLanguageView.cs プロジェクト: gopa810/Rambha
 private void button1_Click(object sender, EventArgs e)
 {
     if (ParentFrame != null)
     {
         RemoteFileRef lang = null;
         if (listBox1.SelectedIndex >= 0 && listBox1.SelectedIndex < listBox1.Items.Count)
         {
             lang = listBox1.Items[listBox1.SelectedIndex] as RemoteFileRef;
         }
         ParentFrame.dialogDidSelectLanguage(CurrentBook, lang);
     }
 }
コード例 #7
0
        public void dialogDidSelectLanguage(RemoteFileRef book, RemoteFileRef lang)
        {
            if (book == null)
            {
                SetShowPanel("book");
                return;
            }

            MNBookHeader bh = Library.FindBookHeader(book.Text);

            if (bh != null && lang != null)
            {
                if (lang.Local)
                {
                    if (lang.Text.Equals("Default"))
                    {
                        pageView1.CurrentDocument.CurrentLanguage = null;
                        pageView1.ReloadPage(false);
                    }
                    else
                    {
                        MNLocalisation file = new MNLocalisation();
                        file.Load(Library.GetLocalFile(lang.FileName), true);
                        pageView1.CurrentDocument.CurrentLanguage = file;
                        pageView1.ReloadPage(false);
                    }
                    SetShowPanel("book");
                }
                else
                {
                    p_fileDown = lang.FileName;
                    panelDownload.FilesToDownload.Clear();
                    panelDownload.FilesToDownload.Add(lang.FileName);
                    panelDownload.Start(Library);
                    SetShowPanel("downloader");
                }
            }
            else
            {
                SetShowPanel("book");
            }
        }
コード例 #8
0
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            ListBox lb   = listBox1;
            object  item = GetItem(lb, listBox1.SelectedIndex);

            if (item is RemoteFileRef)
            {
                RemoteFileRef rf = item as RemoteFileRef;
                listBox2.BeginUpdate();
                listBox2.Items.Clear();
                foreach (RemoteFileRef rl in rf.Subs)
                {
                    if (!rl.Text.Equals("Default"))
                    {
                        listBox2.Items.Add(rl);
                    }
                }
                listBox2.EndUpdate();
            }
        }
コード例 #9
0
ファイル: SelectLanguageView.cs プロジェクト: gopa810/Rambha
 public bool SetBook(RemoteFileRef mainFile)
 {
     CurrentBook = mainFile;
     listBox1.Items.Clear();
     if (mainFile == null)
     {
         return(false);
     }
     if (mainFile.Subs != null && mainFile.Subs.Count > 0)
     {
         foreach (RemoteFileRef lang in mainFile.Subs)
         {
             listBox1.Items.Add(lang);
         }
         listBox1.SelectedIndex = 0;
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #10
0
        /// <summary>
        /// Assumptions: GetCurrentBookDatabase and SetRemoteDatabase
        /// were called prior to this method
        /// </summary>
        /// <returns></returns>
        public bool CalculateDatabaseStatus()
        {
            if (RemoteDatabase == null)
            {
                DatabaseStatus = GetLocalFileDatabase();
                return(false);
            }


            List <RemoteFileRef> remoteDB = RemoteDatabase;
            List <RemoteFileRef> localDB  = new List <RemoteFileRef>();

            if (Books.Count == 0 && LastDirectory != null)
            {
                GetCurrentBookDatabase(LastDirectory);
            }
            localDB = GetLocalFileDatabase();

            foreach (RemoteFileRef rf in remoteDB)
            {
                rf.Selected = false;
                rf.Local    = false;

                RemoteFileRef local = FindRef(localDB, rf.Text);
                if (local != null)
                {
                    if (!local.LastTime.Equals(rf.LastTime))
                    {
                        local.NewVersionAvailable = true;
                    }

                    foreach (RemoteFileRef rlang in rf.Subs)
                    {
                        RemoteFileRef localLang = FindRef(local.Subs, rlang.Text);
                        if (localLang != null)
                        {
                            if (!localLang.LastTime.Equals(rlang.LastTime))
                            {
                                localLang.NewVersionAvailable = true;
                            }
                            rlang.Text = null;
                        }
                        else
                        {
                            rlang.Selected = false;
                            rlang.Local    = false;
                            local.Subs.Add(rlang);
                        }
                    }

                    rf.Text = null;
                }
                else
                {
                    localDB.Add(rf);
                    foreach (RemoteFileRef rlang in rf.Subs)
                    {
                        rlang.Selected = false;
                        rlang.Local    = false;
                    }
                }
            }

            DatabaseStatus = localDB;
            return(true);
        }