void SignatureEditor::OnInit() { m_rich_text_editor = static_cast<RichTextEditor*>(GetWidgetByName("rich_text_editor")); if (!m_rich_text_editor) { // no point in continuing return Close(); } Account* account = g_m2_engine->GetAccountById(m_account_id); if (!account) { SetWidgetValue("apply_for_all_accounts", TRUE); SetWidgetEnabled("apply_for_all_accounts", FALSE); account = g_m2_engine->GetAccountById(g_m2_engine->GetAccountManager()->GetDefaultAccountId(AccountTypes::TYPE_CATEGORY_MAIL)); } if (account) { // get the stored signature BOOL isHTML; OpString signature_content; account->GetSignature(signature_content,isHTML); // initialize the rich text editor m_rich_text_editor->Init(this, isHTML, this, 0); m_rich_text_editor->SetDirection(account->GetDefaultDirection(),FALSE); m_rich_text_editor->SetMailContentAndUpdateView(signature_content, TRUE); m_rich_text_editor->SetEmbeddedInDialog(); // change the explanation to contain the account name OpMultilineEdit *explanation = static_cast<OpMultilineEdit*>(GetWidgetByName("explanation_label")); if (explanation) { if (m_account_id != 0) { OpString explanation_text, account_name, final_text; g_languageManager->GetString(Str::D_MAIL_SIGNATURE_EXPLANATION, explanation_text); final_text.AppendFormat(explanation_text.CStr(), account->GetAccountName().CStr()); explanation->SetText(final_text.CStr()); explanation->SetWrapping(TRUE); } else { explanation->SetVisibility(FALSE); } } } else { Close(); } }