private void SaveGoogleSettings() { Config google_config = Conf.Get("GoogleBackends"); google_config.SetOption("GMailSearchFolder",main.GMailSearchFolder.Text); string username = main.GoogleUsername.Text.Trim(); if (username != String.Empty) { username = username + "@gmail.com"; google_config.SetOption("GMailUsername",username); } if (main.IsGoogleAppsAccount.Checked) { google_config.SetOption("GoogleAppsAccountName",main.GoogleAppsAccountName.Text); } else { google_config.SetOption("GoogleAppsAccountName",String.Empty); } if (main.OptionStorePasswordConf.Checked) { google_config.SetOption("GMailPasswordSource","conf-file"); google_config.SetOption("GMailPassword",main.GooglePassword.Text); } else if (main.OptionStorePasswordKWallet.Checked && !String.IsNullOrEmpty(username)) { try { KdeUtils.StorePasswordKDEWallet("beagle",username,main.GooglePassword.Text); google_config.SetOption("GMailPasswordSource","kdewallet"); } catch (ArgumentException e) { QMessageBox.Warning(this,"KDEWallet",e.Message); } } Conf.Save(google_config); }
private void LoadGoogleSettings() { Config google_config = Conf.Get("GoogleBackends"); main.GMailSearchFolder.Text = google_config.GetOption("GMailSearchFolder",null); string username = google_config.GetOption("GMailUsername",null); if (!username.EndsWith("@gmail.com")) { username = null; } else { main.GoogleUsername.Text = username.Remove(username.Length - 10); } string google_apps_domain = google_config.GetOption("GoogleAppsAccountName",null); if (google_apps_domain != null) { google_apps_domain = google_apps_domain.Trim(); } if (String.IsNullOrEmpty(google_apps_domain)) { main.IsGoogleAppsAccount.Checked = false; main.GoogleAppsAccountName.SetDisabled(true); } else { main.IsGoogleAppsAccount.Checked = true; main.GoogleAppsAccountName.SetDisabled(false); main.GoogleAppsAccountName.Text = google_apps_domain; } string password_source = google_config.GetOption("GMailPasswordSource","conf-file"); if (password_source == "gnome-keyring") { QMessageBox.Critical(this,"Google password storage option","Gnome keyring support not available from beagle-settings-qt"); return; } if (password_source == "kdewallet") { if (String.IsNullOrEmpty(username)) { return; } try { string password = KdeUtils.ReadPasswordKDEWallet("beagle",username); main.GooglePassword.Text = password; main.OptionStorePasswordKWallet.SetChecked(true); } catch (ArgumentException e) { QMessageBox.Warning(this,"KDEWallet",e.Message); } return; } if (password_source != "conf-file") { QMessageBox.Warning(this,"Google password storage option","Unknown password storage option."); return; } main.GooglePassword.Text = google_config.GetOption("GMailPassword",null); main.OptionStorePasswordConf.SetChecked(true); }
private void ReadConf(Config config) { if (config == null || config.Name != "GoogleBackends") { return; } username = config.GetOption("GMailUsername", null); search_folder = config.GetOption("GMailSearchFolder", null); string password_source = config.GetOption("GMailPasswordSource", "conf-data"); password_source = password_source.ToLower(); switch (password_source) { case "conf-file": password = config.GetOption("GMailPassword", null); break; case "gnome-keyring": Log.Error("GMailPasswordSource: gnome-keyring is not supported yet"); break; case "kdewallet": try { password = KdeUtils.ReadPasswordKDEWallet("beagle", username); } catch (Exception e) { Log.Error(e, "Error in reading password in KDE wallet"); } break; default: Log.Error("GMailPasswordSource should be one of 'kdewallet,gnome-keyring,conf-file"); break; } valid_account = ( !String.IsNullOrEmpty(username) && !String.IsNullOrEmpty(password) && !String.IsNullOrEmpty(search_folder)); if (!valid_account) { Log.Warn("GMail account information not set. Search is disabled."); } else { Log.Debug("GMail account information successfully read."); } domain = config.GetOption("GoogleAppDomainName", null); if (String.IsNullOrEmpty(domain)) { domain = GMAIL_DOMAIN; } else { // Google Apps domain is of form // a/mydomain.name domain = ("a/" + domain); } }