private void menuProjectLanguage_Click(object sender, EventArgs e) { object[] properties = (object[])((ToolStripMenuItem)sender).Tag; Projects.Project project = (Projects.Project)(properties[0]); Projects.ProjectLanguage lang = (Projects.ProjectLanguage)(properties[1]); Properties.Settings.Default.ProjectLanguage = lang.shortname; Properties.Settings.Default.Project = project.shortname; Properties.Settings.Default.Save(); loadSelectedProject(); }
private void loadSelectedProject() { #region search Project/Language Projects.Project selectedProject = null;; Projects.ProjectLanguage selectedLanguage = null; foreach (Projects.Project p in Projects.projects) { if (p.shortname == Properties.Settings.Default.Project) { selectedProject = p; if (p.languages.Count > 0) { foreach (Projects.ProjectLanguage lang in p.languages) { if (lang.shortname == Properties.Settings.Default.ProjectLanguage) { selectedLanguage = lang; break; } } } break; } } if ((selectedProject != null) && (selectedProject.languages.Count == 0)) { selectedLanguage = null; } if (selectedProject == null) { selectedProject = Projects.projects[0]; // Wikipedia } if ((selectedProject.languages.Count > 0) && (selectedLanguage == null)) { selectedLanguage = selectedProject.languages[0]; // some (random) standard! // search for standard language foreach (Projects.ProjectLanguage lang in selectedProject.languages) { if (lang.shortname == selectedProject.standardLanguage) { selectedLanguage = lang; break; } } // maybe the system is in another language CultureInfo ci = Thread.CurrentThread.CurrentCulture; string localLanguage = ci.TwoLetterISOLanguageName; foreach (Projects.ProjectLanguage lang in selectedProject.languages) { if (lang.shortname == localLanguage) { selectedLanguage = lang; break; } } } // save Properties.Settings.Default.Project = selectedProject.shortname; if (selectedLanguage != null) { Properties.Settings.Default.ProjectLanguage = selectedLanguage.shortname; } else { Properties.Settings.Default.ProjectLanguage = ""; } Properties.Settings.Default.Save(); #endregion // baseUrl if (selectedProject.languages.Count == 0) { Projects.currentProjectBaseUrl = selectedProject.baseUrl; } else { Projects.currentProjectBaseUrl = selectedLanguage.baseUrl; } Projects.currentProjectBaseUrl += selectedProject.adding;//"/w/"; suggestionFetcher = new SuggestionFetcher(Projects.currentProjectBaseUrl, 30); revisionsFetcher = new RevisionsFetcher(Projects.currentProjectBaseUrl); // show name Projects.currentProjectSaveName = ""; if (selectedLanguage != null) { Projects.currentProjectSaveName = selectedLanguage.shortname + "."; } Projects.currentProjectSaveName += selectedProject.shortname; labelProject.Text = "Project: " + Projects.currentProjectSaveName; #region show in menu // remove all checked foreach (ToolStripMenuItem m in menuProject.DropDownItems) { m.Checked = false; foreach (ToolStripMenuItem m2 in m.DropDownItems) { m2.Checked = false; } } // set checked foreach (ToolStripMenuItem m in menuProject.DropDownItems) { Projects.Project project = ((Projects.Project)m.Tag); if (project == selectedProject) { if (project.languages.Count == 0) { m.Checked = true; } else { foreach (ToolStripMenuItem m2 in m.DropDownItems) { object[] properties = (object[])m2.Tag; Projects.ProjectLanguage lang = (Projects.ProjectLanguage)(properties[1]); if (lang == selectedLanguage) { m2.Checked = true; break; } } } break; } } #endregion }