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); }
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); } }
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); } } }
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); }
public static SMVItem MakeEntry(string t, RemoteFileRef b) { SMVItem sm = new SMVItem(); sm.Text = t; sm.IsHeader = false; sm.File = b; return(sm); }
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); } }
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"); } }
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(); } }
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); } }
/// <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); }