diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-04-28 21:39:58 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-04-29 18:25:17 +0200 |
commit | 5b77e676f57bab2de61dc430e8725c447b73354a (patch) | |
tree | a7d417d6c231afd547f02c41c68eae22b827b001 /starmath/source | |
parent | 2c1f77d34e5a660a72170e30986bd77d9b965ca1 (diff) |
weld SmFontTypeDialog
Change-Id: I720196ce7359e6e571ecd26c544b9e6a61e17484
Reviewed-on: https://gerrit.libreoffice.org/53626
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'starmath/source')
-rw-r--r-- | starmath/source/dialog.cxx | 145 | ||||
-rw-r--r-- | starmath/source/document.cxx | 8 | ||||
-rw-r--r-- | starmath/source/utility.cxx | 42 |
3 files changed, 94 insertions, 101 deletions
diff --git a/starmath/source/dialog.cxx b/starmath/source/dialog.cxx index 713f37f9b690..08bbf1300373 100644 --- a/starmath/source/dialog.cxx +++ b/starmath/source/dialog.cxx @@ -442,37 +442,50 @@ void SmFontSizeDialog::WriteTo(SmFormat &rFormat) const rFormat.RequestApplyChanges(); } -IMPL_LINK( SmFontTypeDialog, MenuSelectHdl, Menu *, pMenu, bool ) +IMPL_LINK(SmFontTypeDialog, MenuSelectHdl, const OString&, rIdent, void) { SmFontPickListBox *pActiveListBox; bool bHideCheckboxes = false; - switch (pMenu->GetCurItemId()) + if (rIdent == "variables") + pActiveListBox = m_xVariableFont.get(); + else if (rIdent == "functions") + pActiveListBox = m_xFunctionFont.get(); + else if (rIdent == "numbers") + pActiveListBox = m_xNumberFont.get(); + else if (rIdent == "text") + pActiveListBox = m_xTextFont.get(); + else if (rIdent == "serif") { - case 1: pActiveListBox = m_pVariableFont; break; - case 2: pActiveListBox = m_pFunctionFont; break; - case 3: pActiveListBox = m_pNumberFont; break; - case 4: pActiveListBox = m_pTextFont; break; - case 5: pActiveListBox = m_pSerifFont; bHideCheckboxes = true; break; - case 6: pActiveListBox = m_pSansFont; bHideCheckboxes = true; break; - case 7: pActiveListBox = m_pFixedFont; bHideCheckboxes = true; break; - default:pActiveListBox = nullptr; + pActiveListBox = m_xSerifFont.get(); + bHideCheckboxes = true; } + else if (rIdent == "sansserif") + { + pActiveListBox = m_xSansFont.get(); + bHideCheckboxes = true; + } + else if (rIdent == "fixedwidth") + { + pActiveListBox = m_xFixedFont.get(); + bHideCheckboxes = true; + } + else + pActiveListBox = nullptr; if (pActiveListBox) { - ScopedVclPtrInstance<SmFontDialog> pFontDialog(this, pFontListDev, bHideCheckboxes); + ScopedVclPtrInstance<SmFontDialog> pFontDialog(nullptr /*TODO*/, pFontListDev, bHideCheckboxes); pActiveListBox->WriteTo(*pFontDialog); if (pFontDialog->Execute() == RET_OK) pActiveListBox->ReadFrom(*pFontDialog); } - return false; } -IMPL_LINK_NOARG( SmFontTypeDialog, DefaultButtonClickHdl, Button *, void ) +IMPL_LINK_NOARG(SmFontTypeDialog, DefaultButtonClickHdl, weld::Button&, void) { - SaveDefaultsQuery aQuery(GetFrameWeld()); + SaveDefaultsQuery aQuery(m_xDialog.get()); if (aQuery.run() == RET_YES) { SmModule *pp = SM_MOD(); @@ -482,64 +495,46 @@ IMPL_LINK_NOARG( SmFontTypeDialog, DefaultButtonClickHdl, Button *, void ) } } -SmFontTypeDialog::SmFontTypeDialog(vcl::Window * pParent, OutputDevice *pFntListDevice) - : ModalDialog(pParent, "FontsDialog", "modules/smath/ui/fonttypedialog.ui"), - pFontListDev (pFntListDevice) +SmFontTypeDialog::SmFontTypeDialog(weld::Window* pParent, OutputDevice *pFntListDevice) + : GenericDialogController(pParent, "modules/smath/ui/fonttypedialog.ui", "FontsDialog") + , pFontListDev(pFntListDevice) + , m_xVariableFont(new SmFontPickListBox(m_xBuilder->weld_combo_box_text("variableCB"))) + , m_xFunctionFont(new SmFontPickListBox(m_xBuilder->weld_combo_box_text("functionCB"))) + , m_xNumberFont(new SmFontPickListBox(m_xBuilder->weld_combo_box_text("numberCB"))) + , m_xTextFont(new SmFontPickListBox(m_xBuilder->weld_combo_box_text("textCB"))) + , m_xSerifFont(new SmFontPickListBox(m_xBuilder->weld_combo_box_text("serifCB"))) + , m_xSansFont(new SmFontPickListBox(m_xBuilder->weld_combo_box_text("sansCB"))) + , m_xFixedFont(new SmFontPickListBox(m_xBuilder->weld_combo_box_text("fixedCB"))) + , m_xMenuButton(m_xBuilder->weld_menu_button("modify")) + , m_xDefaultButton(m_xBuilder->weld_button("default")) { - get(m_pVariableFont, "variableCB"); - get(m_pFunctionFont, "functionCB"); - get(m_pNumberFont, "numberCB"); - get(m_pTextFont, "textCB"); - get(m_pSerifFont, "serifCB"); - get(m_pSansFont, "sansCB"); - get(m_pFixedFont, "fixedCB"); - get(m_pMenuButton, "modify"); - get(m_pDefaultButton, "default"); - - m_pDefaultButton->SetClickHdl(LINK(this, SmFontTypeDialog, DefaultButtonClickHdl)); - - m_pMenuButton->GetPopupMenu()->SetSelectHdl(LINK(this, SmFontTypeDialog, MenuSelectHdl)); + m_xDefaultButton->connect_clicked(LINK(this, SmFontTypeDialog, DefaultButtonClickHdl)); + m_xMenuButton->connect_selected(LINK(this, SmFontTypeDialog, MenuSelectHdl)); } SmFontTypeDialog::~SmFontTypeDialog() { - disposeOnce(); -} - -void SmFontTypeDialog::dispose() -{ - m_pVariableFont.clear(); - m_pFunctionFont.clear(); - m_pNumberFont.clear(); - m_pTextFont.clear(); - m_pSerifFont.clear(); - m_pSansFont.clear(); - m_pFixedFont.clear(); - m_pMenuButton.clear(); - m_pDefaultButton.clear(); - pFontListDev.clear(); - ModalDialog::dispose(); } void SmFontTypeDialog::ReadFrom(const SmFormat &rFormat) { SmModule *pp = SM_MOD(); - *m_pVariableFont = pp->GetConfig()->GetFontPickList(FNT_VARIABLE); - *m_pFunctionFont = pp->GetConfig()->GetFontPickList(FNT_FUNCTION); - *m_pNumberFont = pp->GetConfig()->GetFontPickList(FNT_NUMBER); - *m_pTextFont = pp->GetConfig()->GetFontPickList(FNT_TEXT); - *m_pSerifFont = pp->GetConfig()->GetFontPickList(FNT_SERIF); - *m_pSansFont = pp->GetConfig()->GetFontPickList(FNT_SANS); - *m_pFixedFont = pp->GetConfig()->GetFontPickList(FNT_FIXED); + *m_xVariableFont = pp->GetConfig()->GetFontPickList(FNT_VARIABLE); + *m_xFunctionFont = pp->GetConfig()->GetFontPickList(FNT_FUNCTION); + *m_xNumberFont = pp->GetConfig()->GetFontPickList(FNT_NUMBER); + *m_xTextFont = pp->GetConfig()->GetFontPickList(FNT_TEXT); + *m_xSerifFont = pp->GetConfig()->GetFontPickList(FNT_SERIF); + *m_xSansFont = pp->GetConfig()->GetFontPickList(FNT_SANS); + *m_xFixedFont = pp->GetConfig()->GetFontPickList(FNT_FIXED); - m_pVariableFont->Insert( rFormat.GetFont(FNT_VARIABLE) ); - m_pFunctionFont->Insert( rFormat.GetFont(FNT_FUNCTION) ); - m_pNumberFont->Insert( rFormat.GetFont(FNT_NUMBER) ); - m_pTextFont->Insert( rFormat.GetFont(FNT_TEXT) ); - m_pSerifFont->Insert( rFormat.GetFont(FNT_SERIF) ); - m_pSansFont->Insert( rFormat.GetFont(FNT_SANS) ); - m_pFixedFont->Insert( rFormat.GetFont(FNT_FIXED) ); + m_xVariableFont->Insert( rFormat.GetFont(FNT_VARIABLE) ); + m_xFunctionFont->Insert( rFormat.GetFont(FNT_FUNCTION) ); + m_xNumberFont->Insert( rFormat.GetFont(FNT_NUMBER) ); + m_xTextFont->Insert( rFormat.GetFont(FNT_TEXT) ); + m_xSerifFont->Insert( rFormat.GetFont(FNT_SERIF) ); + m_xSansFont->Insert( rFormat.GetFont(FNT_SANS) ); + m_xFixedFont->Insert( rFormat.GetFont(FNT_FIXED) ); } @@ -547,21 +542,21 @@ void SmFontTypeDialog::WriteTo(SmFormat &rFormat) const { SmModule *pp = SM_MOD(); - pp->GetConfig()->GetFontPickList(FNT_VARIABLE) = *m_pVariableFont; - pp->GetConfig()->GetFontPickList(FNT_FUNCTION) = *m_pFunctionFont; - pp->GetConfig()->GetFontPickList(FNT_NUMBER) = *m_pNumberFont; - pp->GetConfig()->GetFontPickList(FNT_TEXT) = *m_pTextFont; - pp->GetConfig()->GetFontPickList(FNT_SERIF) = *m_pSerifFont; - pp->GetConfig()->GetFontPickList(FNT_SANS) = *m_pSansFont; - pp->GetConfig()->GetFontPickList(FNT_FIXED) = *m_pFixedFont; - - rFormat.SetFont( FNT_VARIABLE, m_pVariableFont->Get() ); - rFormat.SetFont( FNT_FUNCTION, m_pFunctionFont->Get() ); - rFormat.SetFont( FNT_NUMBER, m_pNumberFont->Get() ); - rFormat.SetFont( FNT_TEXT, m_pTextFont->Get() ); - rFormat.SetFont( FNT_SERIF, m_pSerifFont->Get() ); - rFormat.SetFont( FNT_SANS, m_pSansFont->Get() ); - rFormat.SetFont( FNT_FIXED, m_pFixedFont->Get() ); + pp->GetConfig()->GetFontPickList(FNT_VARIABLE) = *m_xVariableFont; + pp->GetConfig()->GetFontPickList(FNT_FUNCTION) = *m_xFunctionFont; + pp->GetConfig()->GetFontPickList(FNT_NUMBER) = *m_xNumberFont; + pp->GetConfig()->GetFontPickList(FNT_TEXT) = *m_xTextFont; + pp->GetConfig()->GetFontPickList(FNT_SERIF) = *m_xSerifFont; + pp->GetConfig()->GetFontPickList(FNT_SANS) = *m_xSansFont; + pp->GetConfig()->GetFontPickList(FNT_FIXED) = *m_xFixedFont; + + rFormat.SetFont( FNT_VARIABLE, m_xVariableFont->Get() ); + rFormat.SetFont( FNT_FUNCTION, m_xFunctionFont->Get() ); + rFormat.SetFont( FNT_NUMBER, m_xNumberFont->Get() ); + rFormat.SetFont( FNT_TEXT, m_xTextFont->Get() ); + rFormat.SetFont( FNT_SERIF, m_xSerifFont->Get() ); + rFormat.SetFont( FNT_SANS, m_xSansFont->Get() ); + rFormat.SetFont( FNT_FIXED, m_xFixedFont->Get() ); rFormat.RequestApplyChanges(); } diff --git a/starmath/source/document.cxx b/starmath/source/document.cxx index b11eb4545618..191eb7b07ccb 100644 --- a/starmath/source/document.cxx +++ b/starmath/source/document.cxx @@ -928,15 +928,15 @@ void SmDocShell::Execute(SfxRequest& rReq) pDev = &SM_MOD()->GetDefaultVirtualDev(); OSL_ENSURE (pDev, "device for font list missing" ); - VclPtrInstance< SmFontTypeDialog > xFontTypeDialog( nullptr, pDev ); + SmFontTypeDialog aFontTypeDialog(rReq.GetFrameWeld(), pDev); SmFormat aOldFormat = GetFormat(); - xFontTypeDialog->ReadFrom( aOldFormat ); - if (xFontTypeDialog->Execute() == RET_OK) + aFontTypeDialog.ReadFrom( aOldFormat ); + if (aFontTypeDialog.run() == RET_OK) { SmFormat aNewFormat( aOldFormat ); - xFontTypeDialog->WriteTo(aNewFormat); + aFontTypeDialog.WriteTo(aNewFormat); ::svl::IUndoManager *pTmpUndoMgr = GetUndoManager(); if (pTmpUndoMgr) pTmpUndoMgr->AddUndoAction( diff --git a/starmath/source/utility.cxx b/starmath/source/utility.cxx index 05ff9a2d9b5c..015257bc3527 100644 --- a/starmath/source/utility.cxx +++ b/starmath/source/utility.cxx @@ -120,30 +120,27 @@ void SmFontPickList::WriteTo(SmFontDialog& rDialog) const /**************************************************************************/ -VCL_BUILDER_FACTORY_ARGS(SmFontPickListBox, WB_DROPDOWN) - -SmFontPickListBox::SmFontPickListBox (vcl::Window* pParent, WinBits nBits) : - SmFontPickList(4), - ListBox(pParent, nBits) +SmFontPickListBox::SmFontPickListBox(weld::ComboBoxText* pWidget) + : SmFontPickList(4) + , m_xWidget(pWidget) { - SetSelectHdl(LINK(this, SmFontPickListBox, SelectHdl)); + m_xWidget->connect_changed(LINK(this, SmFontPickListBox, SelectHdl)); } -IMPL_LINK_NOARG( SmFontPickListBox, SelectHdl, ListBox&, void ) +IMPL_LINK_NOARG(SmFontPickListBox, SelectHdl, weld::ComboBoxText&, void) { OUString aString; - const sal_Int32 nPos = GetSelectedEntryPos(); - + const int nPos = m_xWidget->get_active(); if (nPos != 0) { SmFontPickList::Insert(Get(nPos)); - aString = GetEntry(nPos); - RemoveEntry(nPos); - InsertEntry(aString, 0); + aString = m_xWidget->get_text(nPos); + m_xWidget->remove(nPos); + m_xWidget->insert_text(0, aString); } - SelectEntryPos(0); + m_xWidget->set_active(0); } SmFontPickListBox& SmFontPickListBox::operator=(const SmFontPickList& rList) @@ -151,10 +148,10 @@ SmFontPickListBox& SmFontPickListBox::operator=(const SmFontPickList& rList) *static_cast<SmFontPickList *>(this) = rList; for (decltype(aFontVec)::size_type nPos = 0; nPos < aFontVec.size(); nPos++) - InsertEntry(lcl_GetStringItem(aFontVec[nPos]), nPos); + m_xWidget->insert_text(nPos, lcl_GetStringItem(aFontVec[nPos])); if (!aFontVec.empty()) - SelectEntry(lcl_GetStringItem(aFontVec.front())); + m_xWidget->set_active_text(lcl_GetStringItem(aFontVec.front())); return *this; } @@ -163,15 +160,17 @@ void SmFontPickListBox::Insert(const vcl::Font &rFont) { SmFontPickList::Insert(rFont); - RemoveEntry(lcl_GetStringItem(aFontVec.front())); - InsertEntry(lcl_GetStringItem(aFontVec.front()), 0); - SelectEntry(lcl_GetStringItem(aFontVec.front())); + OUString aEntry(lcl_GetStringItem(aFontVec.front())); + int nPos = m_xWidget->find_text(aEntry); + if (nPos != -1) + m_xWidget->remove(nPos); + m_xWidget->insert_text(0, aEntry); + m_xWidget->set_active(0); - while (GetEntryCount() > nMaxItems) - RemoveEntry(GetEntryCount() - 1); + while (m_xWidget->get_count() > nMaxItems) + m_xWidget->remove(m_xWidget->get_count() - 1); } - bool IsItalic( const vcl::Font &rFont ) { FontItalic eItalic = rFont.GetItalic(); @@ -241,5 +240,4 @@ SmFace & operator *= (SmFace &rFace, const Fraction &rFrac) return rFace; } - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |