diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-06-25 15:21:40 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-06-25 21:10:12 +0200 |
commit | 2cebba0e4042ca2cab37cf38874c2576c2ac6a6f (patch) | |
tree | 6d48a4057e4e6ff8f349ddba11e5d0d3122324f2 /svx | |
parent | 2ec032e01f03ae22ead30be77b8e89b861504128 (diff) |
use common WeldEditView
Change-Id: I873cb64a167027030c9eeef61344e6f6f885a924
Reviewed-on: https://gerrit.libreoffice.org/74705
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/dialog/ClassificationDialog.cxx | 23 | ||||
-rw-r--r-- | svx/source/dialog/ClassificationEditView.cxx | 140 |
2 files changed, 21 insertions, 142 deletions
diff --git a/svx/source/dialog/ClassificationDialog.cxx b/svx/source/dialog/ClassificationDialog.cxx index a2989cc9a19b..6dbe5dc41a54 100644 --- a/svx/source/dialog/ClassificationDialog.cxx +++ b/svx/source/dialog/ClassificationDialog.cxx @@ -427,7 +427,7 @@ void ClassificationDialog::readIn(std::vector<ClassificationResult> const & rInp { case svx::ClassificationType::TEXT: { - m_xEditWindow->pEdView->InsertText(rClassificationResult.msName); + m_xEditWindow->getEditView().InsertText(rClassificationResult.msName); } break; @@ -469,13 +469,15 @@ void ClassificationDialog::readIn(std::vector<ClassificationResult> const & rInp nParagraph++; if (nParagraph != 0) - m_xEditWindow->pEdView->InsertParaBreak(); + m_xEditWindow->getEditView().InsertParaBreak(); // Set paragraph font weight FontWeight eWeight = (rClassificationResult.msName == "BOLD") ? WEIGHT_BOLD : WEIGHT_NORMAL; - std::unique_ptr<SfxItemSet> pSet(new SfxItemSet(m_xEditWindow->pEdEngine->GetParaAttribs(nParagraph))); + + ClassificationEditEngine& rEdEngine = m_xEditWindow->getEditEngine(); + std::unique_ptr<SfxItemSet> pSet(new SfxItemSet(rEdEngine.GetParaAttribs(nParagraph))); pSet->Put(SvxWeightItem(eWeight, EE_CHAR_WEIGHT)); - m_xEditWindow->pEdEngine->SetParaAttribs(nParagraph, *pSet); + rEdEngine.SetParaAttribs(nParagraph, *pSet); } break; @@ -518,7 +520,8 @@ std::vector<ClassificationResult> ClassificationDialog::getResult() { std::vector<ClassificationResult> aClassificationResults; - std::unique_ptr<EditTextObject> pEditText(m_xEditWindow->pEdEngine->CreateTextObject()); + ClassificationEditEngine& rEdEngine = m_xEditWindow->getEditEngine(); + std::unique_ptr<EditTextObject> pEditText(rEdEngine.CreateTextObject()); sal_Int32 nCurrentParagraph = -1; @@ -532,7 +535,7 @@ std::vector<ClassificationResult> ClassificationDialog::getResult() // Get Weight of current paragraph FontWeight eFontWeight = WEIGHT_NORMAL; - SfxItemSet aItemSet(m_xEditWindow->pEdEngine->GetParaAttribs(nCurrentParagraph)); + SfxItemSet aItemSet(rEdEngine.GetParaAttribs(nCurrentParagraph)); if (const SfxPoolItem* pItem = aItemSet.GetItem(EE_CHAR_WEIGHT, false)) { const SvxWeightItem* pWeightItem = dynamic_cast<const SvxWeightItem*>(pItem); @@ -551,7 +554,7 @@ std::vector<ClassificationResult> ClassificationDialog::getResult() const SvxFieldItem* pFieldItem = findField(rSection); ESelection aSelection(rSection.mnParagraph, rSection.mnStart, rSection.mnParagraph, rSection.mnEnd); - const OUString sDisplayString = m_xEditWindow->pEdEngine->GetText(aSelection); + const OUString sDisplayString = rEdEngine.GetText(aSelection); if (!sDisplayString.isEmpty()) { const ClassificationField* pClassificationField = pFieldItem ? dynamic_cast<const ClassificationField*>(pFieldItem->GetField()) : nullptr; @@ -577,7 +580,7 @@ IMPL_LINK(ClassificationDialog, SelectClassificationHdl, weld::ComboBox&, rBox, if (nSelected < 0 || m_nCurrentSelectedCategory == nSelected) return; - std::unique_ptr<EditTextObject> pEditText(m_xEditWindow->pEdEngine->CreateTextObject()); + std::unique_ptr<EditTextObject> pEditText(m_xEditWindow->getEditEngine().CreateTextObject()); std::vector<editeng::Section> aSections; pEditText->GetAllSections(aSections); @@ -602,7 +605,7 @@ IMPL_LINK(ClassificationDialog, SelectClassificationHdl, weld::ComboBox&, rBox, } if (bReplaceExisting) - m_xEditWindow->pEdView->SetSelection(aExistingFieldSelection); + m_xEditWindow->getEditView().SetSelection(aExistingFieldSelection); insertCategoryField(nSelected); @@ -638,7 +641,7 @@ IMPL_LINK(ClassificationDialog, SelectRecentlyUsedHdl, weld::ComboBox&, rBox, vo sal_Int32 nSelected = rBox.get_active(); if (nSelected >= 0) { - m_xEditWindow->pEdEngine->Clear(); + m_xEditWindow->getEditEngine().Clear(); readIn(m_aRecentlyUsedValuesCollection[nSelected]); } } diff --git a/svx/source/dialog/ClassificationEditView.cxx b/svx/source/dialog/ClassificationEditView.cxx index 2972f1b227d9..bc2266626c35 100644 --- a/svx/source/dialog/ClassificationEditView.cxx +++ b/svx/source/dialog/ClassificationEditView.cxx @@ -45,74 +45,30 @@ ClassificationEditView::ClassificationEditView() { } -void ClassificationEditView::SetDrawingArea(weld::DrawingArea* pDrawingArea) +void ClassificationEditView::makeEditEngine() { - Size aSize(500, 100); - pDrawingArea->set_size_request(aSize.Width(), aSize.Height()); - SetOutputSizePixel(aSize); - - weld::CustomWidgetController::SetDrawingArea(pDrawingArea); - - EnableRTL(false); - - const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings(); - Color aBgColor = rStyleSettings.GetWindowColor(); - - OutputDevice& rDevice = pDrawingArea->get_ref_device(); - - rDevice.SetMapMode(MapMode(MapUnit::MapTwip)); - rDevice.SetBackground(aBgColor); - - Size aOutputSize(rDevice.PixelToLogic(aSize)); - aSize = aOutputSize; - aSize.setHeight( aSize.Height() * 4 ); - - pEdEngine.reset(new ClassificationEditEngine(EditEngine::CreatePool())); - pEdEngine->SetPaperSize( aSize ); - pEdEngine->SetRefDevice( &rDevice ); - - pEdEngine->SetControlWord(pEdEngine->GetControlWord() | EEControlBits::MARKFIELDS); - - pEdView.reset(new EditView(pEdEngine.get(), nullptr)); - pEdView->setEditViewCallbacks(this); - pEdView->SetOutputArea(tools::Rectangle(Point(0,0), aOutputSize)); - - pEdView->SetBackgroundColor(aBgColor); - pEdEngine->InsertView(pEdView.get()); - - pDrawingArea->set_cursor(PointerStyle::Text); + m_xEditEngine.reset(new ClassificationEditEngine(EditEngine::CreatePool())); } ClassificationEditView::~ClassificationEditView() { } -void ClassificationEditView::Resize() -{ - OutputDevice& rDevice = GetDrawingArea()->get_ref_device(); - Size aOutputSize(rDevice.PixelToLogic(GetOutputSizePixel())); - Size aSize(aOutputSize); - aSize.setHeight( aSize.Height() * 4 ); - pEdEngine->SetPaperSize(aSize); - pEdView->SetOutputArea(tools::Rectangle(Point(0,0), aOutputSize)); - weld::CustomWidgetController::Resize(); -} - void ClassificationEditView::InsertField(const SvxFieldItem& rFieldItem) { - pEdView->InsertField(rFieldItem); - pEdView->Invalidate(); + m_xEditView->InsertField(rFieldItem); + m_xEditView->Invalidate(); } void ClassificationEditView::InvertSelectionWeight() { - ESelection aSelection = pEdView->GetSelection(); + ESelection aSelection = m_xEditView->GetSelection(); for (sal_Int32 nParagraph = aSelection.nStartPara; nParagraph <= aSelection.nEndPara; ++nParagraph) { FontWeight eFontWeight = WEIGHT_BOLD; - std::unique_ptr<SfxItemSet> pSet(new SfxItemSet(pEdEngine->GetParaAttribs(nParagraph))); + std::unique_ptr<SfxItemSet> pSet(new SfxItemSet(m_xEditEngine->GetParaAttribs(nParagraph))); if (const SfxPoolItem* pItem = pSet->GetItem(EE_CHAR_WEIGHT, false)) { const SvxWeightItem* pWeightItem = dynamic_cast<const SvxWeightItem*>(pItem); @@ -121,90 +77,10 @@ void ClassificationEditView::InvertSelectionWeight() } SvxWeightItem aWeight(eFontWeight, EE_CHAR_WEIGHT); pSet->Put(aWeight); - pEdEngine->SetParaAttribs(nParagraph, *pSet); + m_xEditEngine->SetParaAttribs(nParagraph, *pSet); } - pEdView->Invalidate(); -} - -void ClassificationEditView::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) -{ - //note: ScEditWindow::Paint is similar - - rRenderContext.Push(PushFlags::ALL); - rRenderContext.SetClipRegion(); - - const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings(); - Color aBgColor = rStyleSettings.GetWindowColor(); - - pEdView->SetBackgroundColor(aBgColor); - - rRenderContext.SetBackground(aBgColor); - - tools::Rectangle aLogicRect(rRenderContext.PixelToLogic(rRect)); - pEdView->Paint(aLogicRect, &rRenderContext); - - if (HasFocus()) - { - pEdView->ShowCursor(); - vcl::Cursor* pCursor = pEdView->GetCursor(); - pCursor->DrawToDevice(rRenderContext); - } - - std::vector<tools::Rectangle> aLogicRects; - - // get logic selection - pEdView->GetSelectionRectangles(aLogicRects); - - rRenderContext.SetLineColor(); - rRenderContext.SetFillColor(COL_BLACK); - rRenderContext.SetRasterOp(RasterOp::Invert); - - for (const auto &rSelectionRect : aLogicRects) - rRenderContext.DrawRect(rSelectionRect); - - rRenderContext.Pop(); -} - -bool ClassificationEditView::MouseMove(const MouseEvent& rMEvt) -{ - return pEdView->MouseMove(rMEvt); -} - -bool ClassificationEditView::MouseButtonDown(const MouseEvent& rMEvt) -{ - if (!HasFocus()) - GrabFocus(); - - return pEdView->MouseButtonDown(rMEvt); -} - -bool ClassificationEditView::MouseButtonUp(const MouseEvent& rMEvt) -{ - return pEdView->MouseButtonUp(rMEvt); -} - -bool ClassificationEditView::KeyInput(const KeyEvent& rKEvt) -{ - sal_uInt16 nKey = rKEvt.GetKeyCode().GetModifier() + rKEvt.GetKeyCode().GetCode(); - - if (nKey == KEY_TAB || nKey == KEY_TAB + KEY_SHIFT) - { - return false; - } - else if (!pEdView->PostKeyEvent(rKEvt)) - { - return false; - } - - return true; -} - -void ClassificationEditView::GetFocus() -{ - pEdView->ShowCursor(); - - weld::CustomWidgetController::GetFocus(); + m_xEditView->Invalidate(); } } // end sfx2 |