Beispiel #1
0
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();
	}
}